【发布时间】:2021-03-21 12:25:18
【问题描述】:
我的控制器中有以下查询,这在不使用关系模型的情况下工作得很好。
$menuitems = Menuitems::select(['item_id','item_name','item_price', 'item_code', 'item_status', 'menu_group_name'])
->join('menu_item_groups', 'menu_items.itemgroup_id', '=', 'menu_item_groups.menu_group_id')
->get();
现在我尝试使用关系,我在 Menuitems 模型中定义了以下关系,因为每个菜单项都属于 Menuitemgroup
之一<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Menuitems extends Model
{
use HasFactory;
protected $table = 'menu_items';
protected $primaryKey = 'item_id';
public function menuitemgroup()
{
return $this->belongsTo(Menuitemgroups::class, 'menu_group_id', 'itemgroup_id' );
}
}
现在我想运行与 join 相同的查询,但找不到正确运行的代码,menu_group_name 是另一个表 Menuitemgrous 的一部分,该表的 id 为menu_group_id
我将 $menuitems 作为 json 传递给数据表。
如何查询$menuitems?
【问题讨论】:
-
您需要定义关系的双方。 Menuitems 模型也需要定义一个 hasMany
标签: laravel eloquent relationship