1

次のことを行う方法がわかりません。

製品テーブルと写真テーブルがあるとしましょう。1 商品の写真が多い。したがって、製品モデルでは次のことを行います。

var $has_many = array("category", "photo");

ここで、すべての製品を取得し、それぞれの写真をそれらに関連付けたいと考えています。これどうやってするの?現在、私のコントローラーでは、各製品を調べて写真を照会し、そのように個別の配列を渡しています。これは理想的ではありません。各写真を特定の製品に直接関連付けることができるはずですか? いいえ。

論理的には、これは機能します (しかし、機能しませんか?)

$product = new Product;
$products = $product->get_by_related_category('name', $where);
$photos = $product->photo->get();

私が何をしているのか分かりますか?その $products 変数を自分のビューに渡し、それを介して foreach を実行し、各製品オブジェクトに関連付けられた写真の配列を作成したいと考えています。

どうすればこれを達成できますか? または、これを行うより良い方法はありますか?

ありがとう!

4

2 に答える 2

0

私はしばらくDMを調べていて、同じ機能が必要でした. 最初はload_related、他の回答の関数がこれに対する解決策のように見えました。私はさらにいくつかの調査を行いました。別の質問に対するこの回答を見つけたので、関係の一部のみを自動入力する方法がないかどうか考えさせられました。
ありますよ!

モデルでリレーションを作成する場合、この「オプション」を設定できます。

//Instead of doing this:
var $has_many = array('user_picture');

//Do this
var $has_many = array(
    'user_picture' => array(
        'auto_populate' => TRUE,
    ),
 );

これで、写真がユーザー オブジェクトで使用できるようになります。

foreach ($u as $user) {

    foreach ($user->user_picture as $picture) {
        // Do your thing with the pictures
    }

}

ドキュメントからこのページで見つけました。

楽しみ!

于 2013-06-10T11:15:34.230 に答える