首頁 > php框架 > ThinkPHP > 主體

解決TP5取不到Model的自訂欄位問題

藏色散人
發布: 2021-09-12 14:51:44
轉載
2656 人瀏覽過

thinkphp框架教學欄位將介紹給大家關於TP5取不到Model實例的自訂欄位 type的問題,希望對需要的朋友有所幫助!

解決TP5取不到Model的自訂欄位問題

thinkphp5 取不到Model實例的 自訂欄位 type?

$proxy->type 得到的結果是[]

空數組

JdProxy.php

namespace app\crm\model;

use think\Model;
// use app\admin\model\Common as BaseModel;

class JdProxy extends Model {
    protected $table = '5kcrm_crm_district';

    protected $pk = 'id';

    protected $field = ['id',
        'type',
        'arm_acid',
        'province','city','district',
        'proxyname','manager','gradetype', 'has_updated'];

    protected function initialize() {
        parent::initialize();
    }

    // 创建时间字段
    protected $createTime = 'created_at';
    // 更新时间字段
    protected $updateTime = 'updated_at';

    // 是否需要自动写入时间戳 如果设置为字符串 则表示时间字段的类型
    protected $autoWriteTimestamp = 'datetime';

    public function getTable($name = '')
    {
        return parent::getTable($name); // TODO: Change the autogenerated stub
    }

    /**
     * type是父级\think\Model的属性
     * 不能直接$this->type
     */
    public function getType() {
        return $this->data['type'];
    }
 // ...
}
登入後複製

看父類別\think\Model 

thinkphp/library/think/Model.php

#\think\ Model 定義了type欄位就不會走到__get魔術方法

假設走到__get方法

接下來到getAttr方法

然後是getData方法

所以我在自訂的Model中新增方法取得type欄位的值

    public function getType() {
         return $this->data['type'];
     }对于一些常见词用来命名需要注意 比如 type, name, class...
登入後複製

可以改名typeName, clazz

#

以上是解決TP5取不到Model的自訂欄位問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板