我有3个具有belongsToMany
关系的集合实例。
我想过滤所有3个集合中的数据,但不确定如何。
集合结构。
付款:
{
"_id": "5ba3c8f7c2ab9b3bed20ae22",
"code": "GHFH",
"amount": "345.00"
}
用户:
{
"_id": "5ba3c87cc2ab9b34be139382",
"name": "Jack",
"email": "Pd@gmail.com",
"payment_ids": [
"5ba3c8f7c2ab9b3bed20ae22"
]
}
客户:
{
"_id": "23c34c87cc2ab9b34b3423423",
"name": "cfb",
"email": "Psfsdd@gmail.com",
"payment_ids": [
"5ba3c8f7c2ab9b3bed20ae22"
]
}
我在下面创建了查询。
$cruds = payment::with([
'user' => function ($query) {
$query->orWhere('name','like', "%'".$search."'%");
},
'customer' => function ($query) {
$query->orWhere('name','like', "%'".$search."'%");
}
])
->orWhere('code','like', "%'".$search."'%")
->orWhere('amount', 'like', "%'".$search."'%")
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();
请提出建议。
我的查询有更改。
$cruds = payment::with([
'user' => function ($query) {
$query->where('name','like', "%{$search}%");
},
'customer' => function ($query) {
$query->where('name','like', "%{$search}%");
}
])
->where('code','like', "%{$search}%")
->where('amount', 'like', "%{$search}%")
->offset($start)
->limit($limit)
->orderBy($order, $dir)
->get();