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 😀
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!!
É isso ai, o controller é Listar.
Vou corrigir aqui 🙂
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?
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.
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..
🙁
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.