0

ご挨拶、

CakePHPのcontainableを使用して、find呼び出しから返されたクエリを破棄しようとしています。

たとえば、UserとPostの2つのモデルがあります。ユーザーhasManyPost。

今私が次のようにfindcallでcontainableを使用しているとき:

$User->id = 1;
$User->find('first', array(
    'fields' => array('id'),
    'contain' => array('Post')
))

関連する投稿は返されませんが、代わりにユーザーのIDが返されます。

ただし、逆にデータをフェッチしようとしている場合は機能します。つまり、これは機能します:

   $Post->find('first', array(
        'fields' => array('id', 'user_id'),
        'conditions' => array('Post.user_id' => 1),
        'contain' => array('User')
    ))

これはしません:

   $Post->find('first', array(
        'fields' => array('id'),
        'conditions' => array('Post.user_id' => 1),
        'contain' => array('User')
    ))

戻り値から、containableが機能するには、foreignKeyがフィールドに含まれている必要があると思います。

ユーザーの関連付けがPost.user_idに保存されているので、最初の呼び出しでユーザーフィールドを除外するにはどうすればよいですか?

どんな助けでも大歓迎です!ありがとう。

-aw

4

1 に答える 1

1

larryb82が言ったように、ユーザーモデルから投稿データを取得するには、両方向の関係を定義する必要があります

ユーザーには多くの投稿があります。投稿はユーザーのものです

CakePHPDocの例

于 2009-10-02T10:47:48.813 に答える