Данные отношений Laravel Mongodb Messenger не фильтруются - PullRequest
0 голосов
/ 16 октября 2018

У меня есть 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...