query search LIKE 使用关键字 where 和 left join LARAVEL 5
query search LIKE use keywords where and left join LARAVEL 5
我想根据用户中包含的名称从两个 table 中查找数据,但我遇到了问题。
这是包含 ID 和名称的用户 table。
这是包含 id 和 user_id 的学生 table。
其中 user_id student = id users.
public function search(Request $request)
{
$keywords = trim($request->input('keywords'));
if (!empty($keywords)) {
$id_class = $request->input('id_class');
//Query
$query = User()
->leftjoin('student', 'users.id', '=', 'student.user_id')
->where('users.name', 'LIKE', '%' . $keywords . '%');
(!empty($id_class)) ? $query->Kelas($id_class) : '';
$data_student = $query->paginate(10);
//URL link pagination
$pagination = (!empty($id_class)) ? $pagination = $data_student->appends(['id_class' => $id_class]) : '';
$pagination = $data_student->appends(['keywords' => $keywords]);
$amount_data = $=data_student->total();
return view('student.index', compact('data_student', 'keywords', 'pagination', 'amount_data', 'id_class'));
}
return redirect('student');
}
调用未定义函数App\Http\Controllers\User()
如前所述,您需要使用命名空间正确引用用户 class,您还需要更改以下内容:
$query = User()
->leftjoin('student', 'users.id', '=', 'student.user_id')
->where('users.name', 'LIKE', '%' . $keywords . '%');
至:
$query = User::leftjoin('student', 'users.id', '=', 'student.user_id')
->where('users.name', 'LIKE', '%' . $keywords . '%');
您必须使用 ::
静态调用 class 上的第一个方法。
还有一个潜在的错字,你加入 table student
应该是复数; students
?
我想根据用户中包含的名称从两个 table 中查找数据,但我遇到了问题。 这是包含 ID 和名称的用户 table。 这是包含 id 和 user_id 的学生 table。 其中 user_id student = id users.
public function search(Request $request)
{
$keywords = trim($request->input('keywords'));
if (!empty($keywords)) {
$id_class = $request->input('id_class');
//Query
$query = User()
->leftjoin('student', 'users.id', '=', 'student.user_id')
->where('users.name', 'LIKE', '%' . $keywords . '%');
(!empty($id_class)) ? $query->Kelas($id_class) : '';
$data_student = $query->paginate(10);
//URL link pagination
$pagination = (!empty($id_class)) ? $pagination = $data_student->appends(['id_class' => $id_class]) : '';
$pagination = $data_student->appends(['keywords' => $keywords]);
$amount_data = $=data_student->total();
return view('student.index', compact('data_student', 'keywords', 'pagination', 'amount_data', 'id_class'));
}
return redirect('student');
}
调用未定义函数App\Http\Controllers\User()
如前所述,您需要使用命名空间正确引用用户 class,您还需要更改以下内容:
$query = User()
->leftjoin('student', 'users.id', '=', 'student.user_id')
->where('users.name', 'LIKE', '%' . $keywords . '%');
至:
$query = User::leftjoin('student', 'users.id', '=', 'student.user_id')
->where('users.name', 'LIKE', '%' . $keywords . '%');
您必须使用 ::
静态调用 class 上的第一个方法。
还有一个潜在的错字,你加入 table student
应该是复数; students
?