我正在尝试用laravel建立一个网站 我正在使用分页来显示搜索结果。 当我点击搜索按钮时,它可以工作 但是当我点击分页的下一页时,搜索表单的所有值都会消失,搜索结果没有结果 有人帮忙吗?
route.php
Route::get('search', 'searchController@index');//return search view
Route::post('misearch', 'searchController@search');// return result
Route::resource('misearch', 'searchController@search');// for pagination
searchController.php
$results = Mod_ads::where(function($query){
$ins_brand = Input::has('ins_brand')? Input::get('ins_brand'):null;
$min_price = Input::has('min_price')? Input::get('min_price'):null;
$max_price = Input::has('max_price')? Input::get('max_price'):null;
$ins_color = Input::has('ins_color')? Input::get('ins_color'):null;
if (isset($min_price) && isset($max_price)) {
$query -> where('ads_fie_insprice', '>=', $min_price)->
where('ads_fie_insprice', '<=', $max_price);
}
if ($ins_brand == '0') {
unset($ins_brand);
}else{
$query->where('ads_fie_insbrand', '=', $ins_brand);
}
if (isset($ins_color)) {
$query->where('ads_fie_inscolor', 'LIKE', '%'.$ins_color.'%');
}
})->paginate(2);
$link = str_replace('/?', '?', $results->render());
return View::make('search', compact('results', 'link'));
search.blade.php
@if(isset($results))
@foreach($results->getCollection()->all() as $result)
{{ $result->ads_fie_insbrand }}
{{ $result->ads_fie_insprice }}
{{ $result->ads_fie_inscolor }}
@endforeach
@endif
@if(isset($results))
{!! $link !!}
@endif
任何人都可以指导我吗?非常感谢。
答案 0 :(得分:0)
这是我的回答
searchController.php
public function search(Request $Request)
{
$results = Mod_ads::where(function($query){
$ins_brand = Input::has('ins_brand')? Input::get('ins_brand'):null;
$min_price = Input::has('min_price')? Input::get('min_price'):null;
$max_price = Input::has('max_price')? Input::get('max_price'):null;
$ins_color = Input::has('ins_color')? Input::get('ins_color'):null;
if (isset($min_price) && isset($max_price)) {
$query -> where('ads_fie_insprice', '>=', $min_price)->
where('ads_fie_insprice', '<=', $max_price);
}
if ($ins_brand == '0') {
unset($ins_brand);
}else{
$query->where('ads_fie_insbrand', '=', $ins_brand);
}
if (isset($ins_color)) {
$query->where('ads_fie_inscolor', 'LIKE', '%'.$ins_color.'%');
}
})->paginate(2);
Session::flash('_old_input',Input::all());
$link = str_replace('/?', '?', $results->appends($Request->input())->render());
return view('search', compact('results', 'link'));
}
search.blade.php
@if(isset($results))
@foreach($results->getCollection()->all() as $result)
{{ $result->ads_fie_brand }}
{{ $result->ads_fie_insprice }}
{{ $result->ads_fie_inscolor }}
@endforeach
@endif
@if(isset($link))
{!! $link !!}//pagination
@endif