我正在使用October CMS为一家餐馆建立网站,并且正在使用菜单页面。
我有两个表“ Sections”和“ Menu Items”。部分可以有许多菜单项,但是菜单项只能有一个部分。
我要创建一个范围,以便如果某个Section不包含任何菜单项,则不会返回它。这样一来,我的页面上就没有任何空白的标题了。
我已经建立了我的关系。
部分模型
public $hasMany = [
'menuitems' => ['elnorteno2\restaurantmenu\Models\MenuItem', 'key' => 'section_id']
];
菜单项模型
public $belongsTo = [
'section' => 'elnorteno2\restaurantmenu\Models\Section'
];
我只是不知道将Sections模型用于范围定义。
public function scopeSections($query)
{
??????
}
我到处都看过了,似乎无法用Google搜索正确的内容。
我将感谢您的帮助。谢谢。
答案 0 :(得分:0)
您的意思是只想要2个具有相同键或ID的表中存在的数据?
然后是的,您可以使用联接查询来完成。让我给你一个我以前用过的例子。
table_A有 ID名称电子邮件密码
table_B有 id user_id order_no total
查询
SELECT table_A.id, table_A.name FROM table_A INNER JOIN table_B ON table_A.id = table_B.user_id;
快乐的编码...
答案 1 :(得分:0)
您可以这样写
public function scopeSections($query)
{
return $query->has('menuitems');
}
也许是更好的名字
scopeHavingSubmenu
如有疑问,请发表评论