1
resposta

Como chamar o metodo pesquisa em uma pagina

Boa noite.

Estou tentando implementar uma pesquisar de produto por nome, no entanto não sei com passar o parametro nome para a minha função que pesquisa. segue abaixo o codigo:

<div class="box-body">
                <div class="form-group">
                  <label for="nome" class="col-sm-1 control-label">Nome</label>
                  <div class="col-sm-4">
                    <input type="text" class="form-control" value="{{'p_nome'}}" id="nome" placeholder="informe o nome">
                  </div>
                  <div class="col-sm-4">
                    <button type="submit" href="/produtos/pequisa" class="btn btn-default">Pesquisar</button>                    
                  </div>
                </div>
              </div>
Route::get('/produtos/pesquisa', 'ProdutoController@pesquisa');
public function lista(){
        $produtos = Produto::all();
        return view('listagem')->with('produtos', $produtos);
    }

    public function pesquisa($p_nome){
        $produtos = DB::table('produtos')
                ->where('nome', 'like',  "%" .$p_nome)
                ->get();
        return view('listagem')->with('produtos', $p_nome);
    }
1 resposta

Olá, Claudemir.

Seus campos (label e input) de busca devem estar dentro de uma tag form, para que possam ser enviados para outra página. Geralmente buscas são feitas com o método GET, então ficaria assim:

<div class="box-body">
    <form action="/produtos/pesquisa" method="GET">
        <div class="form-group">
            <label for="nome" class="col-sm-1 control-label">Nome</label>
            <div class="col-sm-4">
                <input type="text" class="form-control" name="p_nome" value="{{'p_nome'}}" id="nome" placeholder="informe o nome">
            </div>
            <div class="col-sm-4">
                <button type="submit" class="btn btn-default">Pesquisar</button>                    
            </div>
        </div>
    </form>
</div>

E no seu método pesquisa:


public function pesquisa(Request $request)
{
    $p_nome = $request->query('p_nome');

    $produtos = DB::table('produtos')
        ->where('nome', 'like',  "%" .$p_nome)
        ->get();
    return view('listagem')->with('produtos', $p_nome);
}

Claro que essa é só uma forma de implementar, dentre as várias possíveis.