ホームページ >PHPフレームワーク >ThinkPHP >TP5がモデルのカスタムフィールドを取得できない問題を解決

TP5がモデルのカスタムフィールドを取得できない問題を解決

藏色散人
藏色散人転載
2021-09-11 16:00:032695ブラウズ

thinkphp Frameworkチュートリアル コラムでは、TP5 が Model インスタンスのカスタム フィールド タイプを取得できない問題を紹介します。友人の役に立てば幸いです。必要としている!

TP5がモデルのカスタムフィールドを取得できない問題を解決

#thinkphp5 Model インスタンスのカスタム フィールド タイプを取得できない場合は、

$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\ Ifモデルは type フィールドを定義します。__get マジック メソッドには進みません。

__get メソッドに進むとします。

次に、getAttr メソッドに進みます。

次に、getData メソッドがあります

#そこで、値を取得するメソッドをカスタム モデルに追加しました。タイプフィールド

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

名前は変更できますtypeName、clazz

以上がTP5がモデルのカスタムフィールドを取得できない問題を解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。