ToDoVel [Parte 15] Listando as Listas

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

Vamos listar as listas de tasks.
Você deve estar pensando “omg, que fácil, que coisa de n00b, quero desafios”.
Não recrimino…

Rota

Route::get('list', 'ListController@listar');

Controller

public function listar(){
	return View::make('list_lists')->with('lists', Lista::all());
}

View

Na listagem de listas quero fazer algo diferente.
Não quero simplesmente exibir links de listas.
Quero exibir os links para as listas e mostrar quantas tasks existem dentro dessa lista para poder testar o relacionamento que definimos no post anterior.
list_lists.blade.php

@extends('template')

@section('conteudo')
    
    <p>
        <a href="{{ URL::to('list/create') }}">Adicionar Lista</a> <br />
    </p>
    
    <ul style="list-style: none;">
        @foreach ($lists as $lista)
            <li class="task">
                <a href="{{ URL::to('list') }}/{{ $lista->id }}">{{ $lista->titulo }}
                ({{ count( $lista->tasks ) }} Tasks)</a> <br />
            </li>
        @endforeach
    </ul>
@stop

Nenhum mistério para nós, artistas do código!
Claro, temos aqui uma pequena novidade, o trecho de código {{ count( $lista->tasks ) }}.
Estamos fazendo uso do relacionamento que criamos no post anterior, e da função count(), para saber quantas tasks cada lista tem.

ObservaçãoEspero que todos tenham reparado no link que cada item recebeu, {{ URL::to(‘list’) }}/{{ $lista->id }}, vamos fazer algo legal com ele no próximo post.

Sério.
Tá difícil?

Programar em PHP nunca foi tão fácil 😀

6 thoughts on “ToDoVel [Parte 15] Listando as Listas

  1. oi to começando com laravel agora, não tenho muito xp, queria saber se a router não seria
    Route::get(‘list’, ‘ListController@listar’); ao inves de
    Route::get(‘list’, ‘ListController@list’); ??. é que ta tanto erros aqui no meu, mas troco o erro depois que fiz essa alteração!!

  2. o meu tá dando um erro aqui

    InvalidArgumentException

    Unknown action [list/create].

    é só eu colocar http://localhost/teste/laravel/public/list/create

    eu tava olhando os arquivos é tem o get no arquivo de rotas para o controller ListController que está manda para o add_list return View::make(‘add_list’);

    pelo q eu vi tá tudo certo aqui….. não tô descobrindo o erro….
    o que pode ser isso?

    1. Pq tuas rotas Laravel estão com /public/ ?

      Provavelmente a ação na rota, que se não me engano é “criar@ListController” não existe dentro do controller. Verifica isso.

      1. essas são todas as minha rotas…..

        //adicionar tasks routs
        Route::get(‘task/add’, array(“as” => “addTask”, “uses” => ‘TaskController@getAdd’ )); // array com nome da rota e controller que será utilizado
        Route::post(‘task/add’, ‘TaskController@postAdd’);

        /* listando tasks */
        Route::any(‘task’, ‘TaskController@listar’);
        Route::any(‘tasks’, ‘TaskController@listar’);

        /* checking tasks checkbox*/
        Route::post(‘task/check’, ‘TaskController@check’);

        /* lists */
        Route::get(‘list/create’, ‘ListController@getCreate’);
        Route::post(‘list/create’, ‘ListController@postCreate’);

        /* Listando as listas relacionadas */
        Route::get(‘list’, ‘ListController@listar’);

        o public é porque eu não sei configurar o servidor para mudar
        http://localhost/teste/laravel/public/list/create
        para
        http://localhost/laravel/list/create
        ou
        http://laravel/list/create..

        🙁

        1. Bitcho,sei não.
          Tem como tu colocar teu código inteiro no GitHub, BitBucket ou algo parecido?
          Por que esse código que você colocou aqui está, aparentemente, normal.
          Talvez você tenha algum problema no controller ou até mesmo no javascript.

Deixe um comentário

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