1

アプリケーションの関係に問題があります。次のテーブルがあります。

役職:

ID | タイトル | テキスト | ラベル

1 | ララ | ララ | 1

投稿ラベル:

ID | 名前

1 | 安全

2 | 他の

2 つのモデル: Post、PostLabel

ポストモデルの関係:

'postLabel' => array(self::HAS_ONE, 'PostLabel', 'id'),

私がこれを使用するとき:

$model=$this->loadModel('Post',1);

var_dump($model->postLabel);

NULLを返しますが、使用すると:

$model=$this->loadModel('Post',1);

var_dump($モデル->タイトル);

「ララ」を返します

どこで間違えた?

編集:SQLクエリで投稿IDを使用していることがわかりますが、ラベルIDは使用されていません。これを変更するには?

4

3 に答える 3

1

リレーションが間違った外部キー列を使用しています。それはでなければなりませんlabel

'postLabel' => array(self::HAS_ONE, 'PostLabel', 'label'),
于 2013-09-02T17:59:20.937 に答える
0

2 つのテーブルを結合するためのテーブルまたは属性がありません。

投稿にはid | title | text | categorypost_label しかありid | nameませんが、どのラベルがどの投稿に属しているかをどうやって知るのでしょうか?!

post_label には次のようなフィールドが必要でありpost_id、関係で宣言します

'postLabel' => array(self::HAS_ONE, 'PostLabel', 'post_id'),

そしたら何かもらえる!

于 2013-09-02T16:06:30.933 に答える