从关系中提取数据

时间:2012-07-04 13:26:02

标签: php activerecord yii

我正在网上开店。我有两个模型:ProductCategoryProduct可以有一个类别,而类别可以有很多产品。

我在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'),
    );
}

谢谢。

1 个答案:

答案 0 :(得分:1)

你可以做到

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

您可以访问

等字段
$the_category->products->name

这将返回数组,您可以通过

查看debugging purposes的内容
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 />";
}