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

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

WBOY
WBOYオリジナル
2016-06-23 13:32:321020ブラウズ

以下のソースコードは男性が話したものです。下の赤い部分は私が理解していない部分です。
/**
* ユーザーとユーザー情報テーブルの関連付けモデル
*/
Class UserRelationModel extends RelationModel {

//メインテーブル名の定義
Protected $tableName = 'user';
//ユーザーとユーザー情報テーブル間の関係属性を定義
Protected $_link = array(
'userinfo' => array(
'mapping_type' => ; HAS_ONE,/ / ここでの HAS_ONE は 1 対 1 の関係を指します。あるいは、カスタマイズされている場合、HAS_MANY の本質は何ですか?すごいですね、ここでこれを定義する目的は何ですか?
'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 までご連絡ください。