php – 如何从Laravel的第二个表中获取重新数据?
发布时间:2020-12-14 19:43:04 所属栏目:大数据 来源:网络整理
导读:我有两个表:用户和学生.这些表按字段连接: users.id = studetns.user_id 我尝试使用请求获取信息: $students = User::where(function ($query) use ($request) { // Filter by name if (($term = $request-get("name"))) { $query-where('name','like','%
我有两个表:用户和学生.这些表按字段连接:
users.id = studetns.user_id 我尝试使用请求获取信息: $students = User::where(function ($query) use ($request) { // Filter by name if (($term = $request->get("name"))) { $query->where('name','like','%' . $term . '%'); $query->where('secondname','%' . $term . '%'); } })->with("details")->where('type','2')->orderBy('name','desc')->get(); dd($students); 您可以看到(“详细信息”),必须连接表. 我的模特用户是: public function details() { return $this->hasOne('AppStudent','user_id','id'); } 当我执行查询时,我收到错误: select * from `users` where `type` = 2 order by `name` desc) 这意味着没有与第二个表连接,其中有名称fiels. 解决方法
如果name和secondname在student表中,请尝试以下操作:
$students = User::where('type','2') ->with(['details' => function ($query) use ($request) { if (!empty($request->name)) { $query->where('name','%'.$request->name.'%'); $query->orWhere('secondname','%'.$request->name.'%'); } $query->orderBy('name','desc'); }])->get(); 这将加载并命令所有学生(或者,如果$request-> name变量存在,所有学生都按其值过滤). PS:正如@ jedrzej.kurylo所说,如果你想在name列或secondname中找到名字,使用orWhere运算符是有意义的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |