【发布时间】:2018-06-20 04:36:41
【问题描述】:
我是 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
请帮帮我,我哪里出错了?谢谢,帕拉克
【问题讨论】:
-
当您遇到页面未找到时,查看浏览器的地址栏显示什么?
-
Ruman - 浏览器栏显示此链接“ssapp/admin/users/search?q=abc&page=2”,这对我来说是正确的。
-
请按照您的路线文件中出现的顺序显示您的其他路线。
-
对不起,这里是我的路线请:Route::group([ 'as'=>'admin.', 'prefix' => 'admin', 'middleware' => 'admin' ] , function() { Route::resource('users', 'AdminUsersController'); Route::post('/users/search', 'AdminUsersController@search'); Route::get('/users/export/{ type}', 'AdminUsersController@export'); Route::get('transactions/index', 'AdminTransactionsController@index')->name('transactions.index'); Route::post('/transactions/search' , 'AdminTransactionsController@search'); Route::get('/transactions/export/{type}', 'AdminTransactionsController@export'); });
-
好的!我会更新我的答案。
标签: search laravel-5.6 laravel-pagination