ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp に 1 対多または 1 対 1 の関係を定義する構文はありますか?

thinkphp に 1 対多または 1 対 1 の関係を定義する構文はありますか?

WBOY
WBOYオリジナル
2016-06-13 12:21:571171ブラウズ

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 ステートメントを使用することをお勧めします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。