1

我正在尝试用 laravel 建立一个网站,并且我正在使用分页来显示搜索结果。当我点击搜索按钮时,它可以工作,但是当我点击分页的下一页时,搜索表单的所有值都消失了,搜索没有结果有人帮忙吗?

路由.php

Route::get('search', 'searchController@index');//return search view
Route::post('misearch', 'searchController@search');// return result 
Route::resource('misearch', 'searchController@search');// for pagination

搜索控制器.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

任何人都可以指导我吗?非常感谢。

4

1 回答 1

0

这是我的回答

搜索控制器.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
于 2016-01-30T11:53:56.927 回答