我不熟悉Laravel搜索功能和分页功能。我正在使用Laravel 5.6并具有搜索功能。
控制器代码
public function search()
{
$users = User::whereRole_id(1)->where(function($query) {
$q = Input::get ( 'q' );
return $query->where ( 'name', 'LIKE', '%' . $q . '%' )->orWhere ( 'email', 'LIKE', '%' . $q . '%' )->orWhere ( 'phone', 'LIKE', '%' . $q . '%');
})->paginate(8)->setPath('');
$pagination = $users->appends ( array ('q' => Input::get ( 'q' ) ) );
if (count($users) > 0){
return view( 'admin.users.index',compact('users'));
}else{
$q = Input::get ( 'q' );
Session::flash('Nosearch',"No Details found with $q .Try to search again !");
return view( 'admin.users.index',compact('users'));
}
}
我的查看代码:
我正在使用{{$ users-> links()}}来显示链接,当我查看源代码时,它给出了正确的参数以及像这样的页码:
<li class="page-item active" aria-current="page"><span class="page-link">1</span</li><li class="page-item"><a class="page-link" href="?q=abc&page=2">2</a></li>
路由代码:
Route::group([
'as'=>'admin.',
'prefix' => 'admin',
'middleware' => 'admin'
], function() {
Route::post('/users/search', 'AdminUsersController@search');
}
当我单击下一页时,出现以下错误 Page Not Found Error
请帮助我哪里出问题了?谢谢,帕拉克
答案 0 :(得分:0)
将您的资源路线移至末尾。您收到404,因为您的uri users/search
与show
资源路由相匹配,即users/{user}
,其中laravel试图找到一个用户ID为“ search”的用户,但找不到该用户,因此它给出ModelNotFoundException
和404
。
您应该重新排列路线,并将搜索路线设为GET
路线,否则,下一页链接将始终通过users/{user}
请求方法访问uri GET
,这将再次导致上述情况。
Route::group([
'as'=>'admin.',
'prefix' => 'admin',
'middleware' => 'admin'
], function() {
//Note that it is now a get method
Route::get('/users/search', 'AdminUsersController@search');
Route::get('/users/export/{type}', 'AdminUsersController@export');
//Moved your resource route to the end of `users` uri.
Route::resource('users', 'AdminUsersController');
Route::get('transactions/index', 'AdminTransactionsController@index')->name('transactions.index');
Route::post('/transactions/search', 'AdminTransactionsController@search');
Route::get('/transactions/export/{type}', 'AdminTransactionsController@export');
});
答案 1 :(得分:0)
Route::group([
'as'=>'admin.',
'prefix' => 'admin',
'middleware' => 'admin'
], function() {
Route::post('/users/search', 'AdminUsersController@search');
Route::get('/users/export/{type}', 'AdminUsersController@export');
Route::resource('users', 'AdminUsersController');
Route::get('transactions/index', 'AdminTransactionsController@index')->name('transactions.index');
Route::post('/transactions/search', 'AdminTransactionsController@search');
Route::get('/transactions/export/{type}', 'AdminTransactionsController@export');
});
I have pasted the image for reference 我要转到此网址:http://ssapp/admin/users/search?q=user1&page=2
关于, 淡黄色