Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Paginação!?

Olá, criei uma paginação para uma tabela, ela está funcionando perfeitamente, segue o código utilizado:

Controller

public function lista(){

        $modelos = Modelo::all();
        $modelos = Modelo::paginate(7); //Aqui no valor gostaria de fazer com que o usuário, escolha qual valor é melhor para ele


        return view('modelos.lista')->with('modelos', $modelos);

    }

View

<div class="datatable-footer">
    @foreach ($modelos as $modelo)
        {{ $modelo->name }}
    @endforeach
    </div>
    {{ $modelos->links() }}
    </div>

Contudo não sei como fazer no valor de paginate(??) para deixar para usuario escolher quantos registros ele quer exibir por pagina, nem no controller nem na view, alguém consegue me ajudar?

Além disto possuo na minha tabela alguns campos como id, nome, detalhes entre outras informações, gostaria de criar um pequeno filtro de ordenação para que o usuário escolha por qual tabela ele quer ordenar, também não sei como fazer.. se alguém tiver alguma ideia...

2 respostas
solução!

Oi Celso, tudo bom?

Quanto ao numero de dados por pagina, você pode receber a quantidade por página como parametro da função lista, esse mesmo parametro pode ser passado por um select na view ou um campo numerico mesmo =)

// passa o valor de $qtdPorPagina pela view
public function lista($qtdPorPagina){

        $modelos = Modelo::all();
        $modelos = Modelo::paginate($qtdPorPagina);

        return view('modelos.lista')->with('modelos', $modelos);

    }

Aqui na documentação tem um exemplo bem legal de como mapear esses parametros na rota =)

Quanto ao filtro na sua tabela, eu recomendo bastante o plugin data table do jquery. Com ele basta você importar o script e chamar a função para a sua tabela. Algo como:

<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/responsive/1.0.0/css/dataTables.responsive.css">
<script type="text/javascript" language="javascript" src="//cdn.datatables.net/responsive/1.0.0/js/dataTables.responsive.min.js"></script>
<script>
$(document).ready(function(){
    $('#IdDaSuaTabela').DataTable();
});
</script>

Assim você consegue realizar filtros por qualquer dado dentro da tabela.

Qualquer problema é só falar.

Abraço e bons estudos.

Legal, André obrigado pelas dicas, vou dar uma olhada nas documentações...