Я делаю интернет-магазин. У меня две модели: Product
и Category
. Product
может иметь одну категорию, в то время как категория может иметь много продуктов.
Я определил отношения в 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'), ); }
Спасибо.
Ты можешь сделать
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 />"; }