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

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

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!