ToDoVel [Parte 16] Listando as tasks de uma lista

Observação: Este tutorial refere-se ao Laravel-4-BETA, estando totalmente DESATUALIZADO para a versão atual. Muita coisa mudou no framework…

Aqui é molesa.
Anteriormente fizemos uma listagem de todas as tasks da nossa app.
Agora vamos fazer a listagem por lista e não um geralzão.

Route

Controller

ListController.php

View

Para criar o arquivo lista.blade.php vou copiar o arquivo list_tasks.blade.php.
Faço isso por que quero utilizar tudo o que fiz dentro de list_tasks.blade.php, com algumas modificações.
E também por que eu estou com preguiça de digitar tudo.

Vale ressaltar a alteração no link para criação de novas tasks.
Antes era assim: <a href=”{{ URL::to(‘task/add’) }}”>Adicionar Task</a> .
Agora é assim: <a href=”{{ URL::to(‘task/add’) }}/{{ $lista->id }}”>Adicionar Task</a> .

Por que isso?
Cenas do próximo capítulo 😀

6 thoughts on “ToDoVel [Parte 16] Listando as tasks de uma lista

  1. Olha só, estou conseguindo entender bem até aqui, e até mesmo o meus erros, que bom né :p

    O que eu tentei foi passar um id que não existe e me retornou um erro, só que não soube como arrumar. Tentei dar uma olhada na documentação em http://laravel.com/docs/eloquent mas não sei ainda onde que eu tenho que fazer as alterações. Depois, se puder dar uma ajuda.

    Valew

    1. A idéia de passar um id que não existe é retornar erro mesmo.
      A gente está usando o comando Lista::findOrFail($lista_id).
      Ele funciona assim: tenta encontrar no banco de dados, se não conseguir FAIL.
      Você pode utilizar esse fail num bloco try/catch para gerar páginas de erro 404 customizadas (isso eu não ensinei nesse tutorial).

      Se você quer que pare de dar erro, utilize apenas Lista::find($lista_id).
      Só que, no caso de passar um id que não existe, o comando retornará NULL.
      Ai, na view, quando você tentar exibir alguma coisa, você terá PHP Error, por estar tentando fazer operações com NULL.

  2. Depois de 2 dias apanhando aqui consegui resolver uma parada aqui.
    Foi o seguinte:
    No custom_script tive problemas com o envio da requisição ajax com o endereço “estático” da rota, no caso o “/task/check”. Pois na listagem de todas as tarefas (list_tasks) funcionou na boa, mas quando era acessado/requisitado a partir da view lista.blade dava error 404 por não encontrar a rota porque a url neste caso muda e o endereço para a rota se torna inválido.
    Neste caso a tarefa está dentro de uma lista, por isso o problema, aí tive que colocar caminho relativo (“../task/check”) … mas na boa achei pouco “enxuto” trabalhar assim, aí pensei: pow o Laravel/Blade é tão foda que deve dar pra usar {{ }} aqui dentro, então foi isso. 🙂
    É só colocar no custom_script por exemplo:
    $.post(“{{ route(‘nomeDaRotaNomeada’) }}, {task_id: task_id}, function(data){ … tudo igual … });

    A vantagem que vejo é que independente em que nível a view esteja ou se ela possui subviews funcionará sempre… em fim, o Laravel/Blade vai pegar a url para a rota totalmente qualificada e plotar na view que solicitar.

    OBS: Eu nomeei a a rota de task/check, não sei se passar a rota explicitamente vai rolar.

    1. Esqueci, também usar task/check, /task/check, e nada funcionou tão bem e dinâmico quanto o exposto acima.
      E para não esquecer, porra Frenetic obrigado mais uma vez pelo tutorial cara, parabéns, estou aprendendo muito e na boa, Laravel está me fazendo vontade de retornar a estudar mais profundamente o PHP, pois já estava quase o abandonando, só estava estudando Java 🙂 vlw

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *