У меня есть 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();