0
検索結果のページ区切りに問題があります。私は、最初のページの権利を取得しますが、2ページのために私はこのエラーを取得する:Laravel5 - 検索結果のページ付けエラーが発生しました
QueryException in Connection.php line 729:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'page' in 'where clause' (SQL: select count(*) as aggregate from `books` where `id` like %% and `page` like %2% and `books`.`deleted_at` is null)
マイルート:
Route::get('books/search', '[email protected]');
Route::get('books/results', '[email protected]');
コントローラー:
use Search; //search trait
public function searchForm(){
return view('books.search.form');
}
public function searchProcess(Request $request){
$result = $this->performSearch($request, $this->model);
return view('books.search.result', compact('result'));
}
検索形質(別のファイル内のクラス):
protected function performSearch($request, $model){
$searchFields = $request->toArray();
unset($searchFields['_token']);
$searchFields = array_filter($searchFields);
if (empty($searchFields)) {
return back();
}
$list = $model->where('id', 'like', '%%');
foreach ($searchFields as $column => $value) {
$list->where($column, 'like', '%'.$value.'%');
}
return $list->paginate(10);
}
showinグラム結果:
<div class="table-responsive">
<table class="table table-hover table-bordered">
<tr>
<th>Results</th>
</tr>
@foreach($result as $datum)
<tr>
<td><a href="{{route('books.show', $datum->id)}}">{{$datum->title}}</a></td>
</tr>
@endforeach
</table>
</div>
@if($result->lastPage() > 1)
<nav class="text-center">
{{$result->links()}}
</nav>
@endif
私はLaravel 5.2
を構築するクエリからページパラメータを削除する必要があると思うそれが働きましたあなたのために?それがパラメータに関する唯一の問題だと思われます。 それがうまくいっていると他の人が参考になるように質問に印をつけてください。 –
問題の一部を解決していただきありがとうございます。もう1つの問題は、検索トークンがpage2に渡されないため、結果がないことです。たとえば、title = "php"を検索している場合、私がpage2に行くとtitle = ""を検索します。これをどうすれば解決できますか? – irza
あなたはすべてのフィルタリングされた値をURLのパラメータとして渡すことができます。したがって、page1 title = "php"の場合、ページリンクは/ page2?title = php となるので、$ requestにも2ページでtitle = "php" - > params( 'page'); パラメータを指定してurlを生成するには、route()メソッドまたはaction()メソッドを使用します。 –