搜索和分页Laravel 4

时间:2014-09-09 02:49:41

标签: php search laravel pagination

我有问题,我想使用表单进行搜索并使用分页。问题是当我更改页面时,会发生错误:

没有模型[Aluno]的查询结果。

我的控制器

Route::post(
'alunos/busca', 
array(
    'as' => 'alunos.busca', 
    'uses' => 'AlunosController@busca'
)

);

我的控制器

public function busca()
{
   $search = Input::get('q');
   $alunos = Aluno::where('curso', $search)->paginate(1);
   return View::make('alunos.index', compact('alunos', 'search'));
}   

我的观点:

<form method="post" action="{{ URL::to('alunos/busca') }}">
<input class="input-xxlarge" name="q" type="text" placeholder="Search...">
<div class="control-group">
    <div class="controls">
        <input type="submit" class="btn" id="submit" value="Submit" />
    </div>
</div> 
<div class="divPagination">
   {{ $alunos->links() }}
</div>

我需要帮助..

抱歉我的英文

2 个答案:

答案 0 :(得分:1)

我认为最好的解决方案是下一个:

  1. 将此表单复制并粘贴到您想要的位置:

    {{Form::open(array('url' => 'alunos/busca','method' => 'get'))}}
    {{Form::text('q', null , array('placeholder' => 'Search...','class' => 'input-xxlarge'))}}
    {{Form::submit('SEARCH',array('class' => 'btn','id' => 'submit'))}}
    {{Form::close()}}
    
  2. routes.php

    Route::get('alunos/busca', function() {
       $search = Input::get('q');
       $alunos = Aluno::where('curso', 'LIKE', '%'.$search.'%')->paginate(15);
       return View::make('alunos.index')
        ->with('alunos', $alunos);
    });
    
  3. 现在,在您看来app/views/alunos/index.blade.php

    @if(!$alunos->isEmpty())
       @foreach($alunos as $aluno)
          {{$aluno->subject}}
       @endforeach
    
     {{$alunos->links()}}
    
    @else
       <h1> No results </h1>
    @endif
    
  4. 根据需要更改<欣赏

答案 1 :(得分:0)

问题是当你点击下一页时它没有你刚刚输入的搜索参数的内存,基本上是$q = null;,这将导致错误。