我是laravel的新手,我试图在数据库中的表中搜索数据。
这是我的路线代码
Route::get('/search','StudentController@search');
Route::get('/search','ProfessorController@search');
这是教授的搜索功能代码
public function search(Request $request)
{
$search = $request->get('search');
$professors = DB::table('professors')->where('name', 'like','%'.$search.'%')->paginate(4);
return view('professor.index', ['professors' => $professors]);
}
这是学生的搜索功能代码
public function search(Request $request)
{
$search = $request->get('search');
$students = DB::table('students')->where('lastname', 'like','%'.$search.'%')->paginate(4);
return view('student.index', ['students' => $students]);
}
这是教授的查看代码
<form action="/search" method="GET">
<div class="input-group">
<input type="search" name="search" class="form-control">
<span class="input-group-prepend">
<button type="submit" class="btn btn-primary bouton">Search</button>
</span>
</div>
</form>
这是给学生的
<form action="/search" method="GET">
<div class="input-group">
<input type="search" name="search" class="form-control">
<span class="input-group-prepend">
<button type="submit" class="btn btn-primary bouton">Search</button>
</span>
</div>
</form>
现在!我遇到的问题是,当我尝试在学生视图中搜索数据时,它将带我进入教授视图,而当我切换路线时,它总是执行拉特路线!
我真的很清楚我的问题,如果有人帮助我,我将非常高兴!
答案 0 :(得分:0)
它们与Laravel相同。它怎么知道您想要哪一个。稍微修改即可。
Route::get('/search-students','StudentController@search');
Route::get('/search-professors','ProfessorController@search');
答案 1 :(得分:0)
您的路线应与其他路线不同。
对于学生
Route::get('student/search','StudentController@search')->name('student.search');
<form action="{{ route('student.search')}}" method="GET">
</form>
对于教授
Route::get('professor/search','ProfessorController@search')->name('professor.search');
<form action="{{ route('professor.search')}}" method="GET">
</form>
答案 2 :(得分:0)
如果您想获得动态结果,请使用此方法,从而无需创建 每次都有新的路线和方法。只需传递额外的参数即可。
将路线更改为
Route::get('/search/{model?}','StudentController@search');
和表格
<form action="/search/students" method="GET">
<form action="/search/professors" method="GET">
并在控制器中
$result = DB::table($request->model)->where('name', 'like','%'.$search.'%')->paginate(4);
答案 3 :(得分:0)
您只需要以下if语句:
public function search(Request $request)
{
$search = $request->get('search');
if($search){
$professors = DB::table('professors')->where('name',
'like','%'.$search.'%')->paginate(4);
} else {
$professors = Professor::all();
}
return view('professor.index', ['professors' =>
$professors]);
}
因此,在您的代码中可能是这样的:
{{1}}