thinkphp に 1 対多または 1 対 1 の関係を定義するための構文はありますか?
以下のソース コードは、私が理解できない部分です。 🎜>/**
* ユーザーとユーザー情報テーブルの関連付けモデル
*/
Class UserRelationModel extends RelationModel {
//メインテーブル名を定義します
Protected $tableName = 'user';
//ユーザーを定義します ユーザー情報テーブルに関連付けられた関係属性
Protected $_link = array(
'userinfo' => array(
'mapping_type' => HAS_ONE, //
ここでの HAS_ONE は 1 対 1 の関係を指します。HAS_ONE は thinkphp の構文ですか? カスタマイズされている場合、HAS_MANY は 1 対多であると言われています。ここでこれを定義する目的は次のとおりです。 'foreign_key' => 'uid' //
これは外部キーですが、この場所の役割は何ですか? )
);
/**
※自動挿入方法
*/
パブリック関数 insert ($data=NULL) {
$data = is_null($data) ? $_POST : $data;
return $this->relation(true)->data($data)->add();
}
}
?>
------解決策のアイデア--- ------- は関連テーブルです。 1 対多は、スレーブ テーブルに対するマスター テーブルの操作として理解できます。多対 1 は、スレーブ テーブルからマスター テーブルへの操作です。
TP の多対多モデルはバグがあるため推奨されません。
一般に、この種の関係を扱うときは、より適切に制御するために、結合された SQL ステートメントを使用することをお勧めします。