【发布时间】:2018-08-01 19:45:54
【问题描述】:
我的 laravel 雄辩是这样的:
$query = ItemDetail::selectRaw('a.item_number, sum(abs(a.quantity)) as "total_quantity"')
->from('item_detail as a')
->join('items as b', 'b.id', '=', 'a.item_number');
if(isset($param['vendor'])) {
$query = $query->where('b.vendor_id', '=', $param['vendor']);
}
$query = $query->groupBy('a.item_number')
->paginate($paged);
return $query;
如果执行了查询,就会出现这样的错误:
Relation 'a' is not instance of HasOne or BelongsTo.
我该如何解决这个问题?
更新
我的物品模型是这样的:
class Item extends Model
{
...
protected $fillable = [
'name',
'vendor_id'
];
public function item_details()
{
return $this->hasMany(ItemDetail::class, 'id', 'item_number');
}
}
我的物品细节模型是这样的:
class ItemDetail extends Model
{
....
protected $fillable = [
'item_number',
'name',
'posting_date'
];
public function item()
{
return $this->belongsTo(Item::class, 'id', 'item_number');
}
}
【问题讨论】:
-
你需要更清楚。返回 $query 后发生了什么?你必须运行什么代码?
-
@MohamedSabil83 不,存在这样的错误
-
您的型号代码是多少?你的控制器代码是什么?让我们为您提供帮助。
-
@MohamedSabil83 我更新了我的问题
-
首先,您需要交换两个关系中的
id和item_number,而item_number是外键
标签: laravel join eloquent laravel-5.6