ホームページ > バックエンド開発 > PHPチュートリアル > Yii 関連のクエリに関する問題

Yii 関連のクエリに関する問題

WBOY
リリース: 2016-06-13 12:04:15
オリジナル
900 人が閲覧しました

Yii 関連のクエリ問題
3 つのテーブル A B C

AB は 1 対多
BC は 1 対 1

C を満たすレコードをクエリして最終的に表示する方法A
------解決策---------
A---user テーブル (user_name フィールドあり) )
B---article テーブル (user_id フィールドあり)
C---article_content テーブル (article_content_id フィールドあり)

条件:article_content テーブルのarticle_content_id フィールドを通じてユーザーのユーザー名をクエリする
には 2 つが必要です リレーションの場合、model/Comment.php に 1 つ追加します:

<br />public function relations() {<br />    return array(<br />        ....<br />        'userInfo' => array(self::BELOGNS_TO, 'User', 'user_id'),<br />    );<br />}<br />
ログイン後にコピー


上記と同様に、model/CommentContent.php に追加します:
<br />'article' => array(self::HAS_ONE, 'Article', 'article_content_id'),<br />
ログイン後にコピー


クエリ:
<br />$result = ArticleContent::model() -> find('article_content_id = :aid', array(':aid' => $articleId));<br />prinr_r($result -> attributes); // 打印出来的都是article_content表的字段<br />print_r($result -> article -> attributes); //得到article表的字段<br />print_r($result -> article -> userInfo -> user_name); //得到username<br />
ログイン後にコピー



私は純粋に投稿者が言及した状況を構築するためにこのように書きました。一般的に言えば、関連するほとんどのことはこのように設計されるべきではありません。フィールドはその中間テーブル、article にあります。テーブル内でチェックするときは、article のモデルを他のテーブルと関連付けてクエリする必要があります

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート