【发布时间】:2019-07-30 08:20:09
【问题描述】:
我是 laravel 的新手,面临着 eloquent 搜索查询的问题。我有两个表 assets 和 assets_maintenance。当用户搜索时,它们与资产模型 assets 中的 assets hasMany assets_maintenance 有关系
$data['reports'] = AssetMaintenance::with(['assets'])
->where('inspector_id',$tenant_inspector_id)
->where('maintenance_due_date','>=',Carbon::now()->startOfDay())
->whereHas('assets',function($query){
$query->active();//is_delete=0
})
->whereHas('assets',function($query) use($stext){
$query->where('asset_reference','like',"%{$stext}%")
->orWhere('asset_detail','like',"%{$stext}%");
})
->orWhereHas('assets.assetCategory',function($query) use($stext){
$query->where('assets_category.name','like',"%{$stext}%");
})
->orWhere('maintenance_due_date','like',"%{$stext}%")
->orWhere('maintenance_cost','like',"%{$stext}%")
->orderBy('maintenance_due_date','ASC')
// ->toSql();
->paginate(10);
但它没有给我正确的结果。有时它给我另一个资产或检查员的记录。我想要inspector_id=?、manitenance_due_date 大于now 和assets 的结果是活动的意味着不被删除.
其他条件可选asset_reference,asset_detail,assets_category.name,maintenance_due_date,maintenance_cost
【问题讨论】:
-
能不能显示两个db表结构
-
添加你写关系方法的两个类的代码
-
我添加了图片,资产表的Ist和asset_maintenance_table底部的第二个,请看一下
-
你的意思是一个资产有很多asset_maintenance和assetManintenace属于Asset吗?你的问题不是很清楚。
-
@pseudoanime,是的,你是对的。
标签: laravel eloquent eloquent-relationship