2014-09-09 4 views
2

J'ai un problème, je veux utiliser le formulaire pour faire une recherche et utiliser la pagination. Le problème est lorsque je change la page, une erreur se produit:Recherche et Pagination Laravel 4

Aucun résultat de recherche pour le modèle [Aluno].

Mon contrôleur

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

);

Mon contrôleur

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

Mon point de vue:

<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> 

je besoin d'aide ..

Désolé mon anglais

Répondre

0

Le problème est lorsque vous cliquez sur la page suivante, il n'a pas de mémoire du paramètre de recherche que vous venez d'entrer, essentiellement $q = null; qui causera l'erreur.

+0

Ok .. vous avez des solutions? –

+0

Renvoyez $ q à votre vue et vérifiez si elle existe, réglez la valeur d'entrée sur la valeur. '' '' – bgallagh3r

1

Je pense que la meilleure solution est la suivante:

  1. Copier et coller ce formulaire où vous le souhaitez:

    {{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. En 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. Maintenant, à votre avis 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. changer comme vous le souhaitez et profiter