2つのテーブルがあります: プレイテーブルとタイプテーブル
プレイテーブルフィールド:
id type
type テーブルフィールド:
id title
type とプレイテーブル内タイプテーブルのidが関連付けられます。
thinkphp5 のモデル定義は次のとおりです:
play モデル:
class Play extends Model { protected $table = 'wx_play'; public function type2() { return $this->hasOne("Type", "id", "type"); }
type モデル:
class Type extends Model { protected $table = 'wx_type'; }
注:
play モデルの type2 関数は使用できません。書かれるタイプとして、そうでない場合、プレイ テーブルのタイプ フィールドと競合し、タイプ テーブルのオブジェクトではなく、プレイ テーブルのフィールドのみがクエリされることになります。
thinkphp5 のドキュメントによると:
ヒント:
Play モデルの type2 メソッドは関連付け定義メソッドです。メソッド名は任意に付けることができますが、メソッドのフィールド属性との競合を避けるように注意してください。 Play モデル オブジェクト。
以上がthinkphpモデルのhasOneにある同じ名前のフィールドの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。