2014-09-09 7 views
2

У меня проблема, я хочу использовать форму для поиска и использования разбивки на страницы. Проблема в том, что когда я меняю страницу, возникает ошибка:Поиск и разбиение на страницы Laravel 4

Нет результатов запроса для модели [Aluno].

Мой контроллер

Route::post(
'alunos/busca', 
array(
    'as' => 'alunos.busca', 
    'uses' => '[email protected]' 
) 

);

Мой контроллер

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> 

мне нужна помощь ..

К сожалению мой английский

ответ

0

Проблема заключается в том, когда вы нажимаете на следующей страничке не имеет памяти о введенном вами параметре поиска, по существу $q = null;, который вызовет Ошибка.

+0

Ок .. у вас есть какие-либо решения? –

+0

Переведите $ q обратно к вашему представлению и проверьте, существует ли он, установите значение ввода обратно в значение. '' '' – bgallagh3r

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. Изменить его, как вы хотите, и наслаждаться

Смежные вопросы