我有以下表格:
- restaurants (restaurant.id, restaurant.name)
- menus (menu.id, menu.name, menu.active, menu.restaurant_id)
我想列出所有带有活动菜单的餐厅(menu.active = true):
- restaurant2
- menu1
- menu4
- restaurant5
-menu3
- restaurant19
- menu34
- menu33
我的第一个想法是这样的:
$options['contain'] = array(
'Menu' => array(
'conditions' => $menuParams //array('Menu.active' => '1') //$menuParams
)
);
这不起作用,因为将列出所有餐厅。我只想拥有有活动菜单的餐厅。
下一个想法:使用连接
$options['joins'] = array(
array('table' => 'menus',
'alias' => 'Menu',
'type' => 'RIGHT',
'conditions' => array(
'Menu.restaurant_id = Restaurant.id',
)
)
);
不好,因为,我没有我想要的有序列表。我需要按餐厅分组的菜单。看上面。
加入餐厅和菜单(active = true)然后使用包含来获取有序列表是否是正确的方法?我认为这可行,但我认为还有更简单的方法,对吧?
欢迎任何帮助!谢谢你。