Laravel Mongodb Messenger关系数据未过滤

时间:2018-10-16 15:51:01

标签: mongodb laravel-5 laravel-5.2

我有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();

0 个答案:

没有答案