1

オンラインショップを作っています。と の 2 つのモデルがProductありCategoryます。Productカテゴリには 1 つのカテゴリを含めることができますが、カテゴリには複数の製品を含めることができます。

で関係を定義しましたmodels。カテゴリと製品にアクセスできます。しかし、特定のカテゴリからすべての製品を取得したいです。公式ドキュメントから「怠惰な」アプローチと「熱心な」アプローチを使用してリレーショナルクエリの多くの例を試しましたが、成功しませんでした。実装方法を教えてください。

これが私のコードです:

カテゴリ コントローラ:

public function relations()
{
    return array(
        'products' => array(self::HAS_MANY, 'Product', 'category_id'),
    );
}

製品コントローラ:

public function relations()
{
    return array(
        'category' => array(self::BELONGS_TO, 'Category', 'category_id'),
    );
}

ありがとうございました。

4

1 に答える 1

1

できるよ

Category::model()->with('products')->findByPk(1);

次のようなフィールドにアクセスできます

$the_category->products->name

debugging purposesこれは配列を返し、 byのコンテンツを見ることができます

CVarDumper::Dump($the_category->products->name,100,true);

foreachループを使用してそれぞれにアクセスできますindex

$products = $the_category->products;
foreach ($products as $the_product) 
{
    echo "Name: " . $the_product['name'] . "<br />";
}
于 2012-07-04T15:21:31.483 に答える