doufei9946 2019-08-06 08:12
浏览 239
已采纳

如何在类似搜索中使用ORM从两个表中获取数据 - 使用Laravel

This is my Controller code:

         public function searchUser(Request $request)
{
    $pram = $request->name;

    $data['users'] = User::whereHas('userBasicInfo', function ($query) use ($pram) {
        $query->where('first_name', 'like', '%' . $pram . '%')
            ->orWhere('middle_name', 'like', '%' . $pram . '%')
            ->orWhere('last_name', 'like', '%' . $pram . '%');
    })->with(['userBasicInfo' => function ($query) use ($pram) {
        $query->where('first_name', 'like', '%' . $pram . '%')
            ->orWhere('middle_name', 'like', '%' . $pram . '%')
            ->orWhere('last_name', 'like', '%' . $pram . '%');
    }])->get();

    return $data;
}

I have relationship of user with userBasicInfo i can search with first_name, middle_name and last_name and my request parameter is name

Now i want to search with user email and there will be one more request parameter which is email and email is in users table

How i can search with user email as well i am confused here anyone please help me

Your help will be highly appreciated!

  • 写回答

1条回答 默认 最新

  • dongxun1142 2019-08-06 08:55
    关注

    Try like

    $data['users'] = User::with('userBasicInfo')
                ->where('email', 'like', '%' . $pram . '%') //this is from use table
                ->orWhereHas('userBasicInfo', function($query) use($pram) {
                    //search in basic info table
                    $query->where('first_name', 'like', '%' . $pram . '%')
                        ->orWhere('middle_name', 'like', '%' . $pram . '%')
                        ->orWhere('last_name', 'like', '%' . $pram . '%');
                })
                ->get();
    

    You don't need to send different value from the search form. A single value can be used as the search value.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)