BaseModel.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace core\base;
  12. use app\model\site\Site;
  13. use think\facade\Db;
  14. use think\Model;
  15. /**
  16. * 基础模型
  17. * Class BaseModel
  18. * @package app\model
  19. */
  20. class BaseModel extends Model
  21. {
  22. public function getModelColumn()
  23. {
  24. $table_name = $this->getTable();
  25. $sql = 'SHOW TABLE STATUS WHERE 1=1 ';
  26. $tablePrefix = config('database.connections.mysql.prefix');
  27. if (!empty($table_name)) {
  28. $sql .= "AND name='" .$table_name."'";
  29. }
  30. $tables = Db::query($sql);
  31. $table_info = $tables[0] ?? [];
  32. $table_name = str_replace($tablePrefix, '', $table_info['Name']);
  33. return Db::name($table_name)->getFields();
  34. }
  35. /**
  36. * 站点名称获取(针对有site_id字段的模型查询站点名称使用)
  37. * 使用with('siteName')
  38. * @return \think\model\relation\HasOne
  39. */
  40. public function siteName()
  41. {
  42. return $this->hasOne(Site::class, 'site_id', 'site_id')->joinType('left')->field('site_id, site_name')->bind(['site_name']);
  43. }
  44. }