ToDoVel [Parte 13] Criando Listas de Tasks

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

Acontece que agora temos um monte de tarefas soltas.
Seria legal se fosse possível agrupar essas tasks em listas de coisas para fazer (to-dos).
Assim, poderiamos criar uma lista de coisas para fazer no trabalho, itens para comprar no mercado, pessoas para mandar email desaforado…

Criando a Tabela de Listas e Atualizando a Tabela de Tasks

Vamos criar uma nova Migration para ter um script que cria a tabela com as listas de to-do e vamos aproveitar para alterar a tabela de tasks para que cada task tenha uma foreign key para uma lista.

E ai, no arquivo criado, vamos escrever as funções de up() e down()

O método up() é dividido em duas etapas: a criação da tabela listas e a alteração da tabela tasks.
Criar tabela já aprendemos, lavo minhas mãos.

Alterar tabela é coisa nova, mas muito simples (até agora, houve algo difícil de fazer com o Laravel 4?)
Para alterar a tabela utilizo Schema::table(‘tabela’, closure);
ATENÇÃO: Como migrations podem, e devem, ser utilizados em ambiente de produção, ALTERAR tabelas é sempre um perigo pois pode-se estar trabalhando com dados valiosos.
Vale a pena testar em ambiente de desenvolvimento e, antes de executar em produção, FAZER BACKUP!

Na tabela tasks adicionei uma nova coluna chamada list_id que será o id da lista pai da task.
Marquei como nullable pois, caso a tabela já possua valores, quando a migration criar a nova coluna, o valor null será o valor default.
E ai, marquei a coluna list_id como sendo foreign.

É FÁCIL OU NÃO É?
Chega dá vontade de rir por nada.

HAHAEOUIAEHIOEHIOEHOIAHUEOAUHEOAHUEOAUIEH OIHOAIHOAEIHIOAEUHOAIHOAUHIOHUAOIUHEWOHUAEOHAE OUHEOUIHAEOUAHOIHUEOHAEIHAEOHAEOIHAEIOHUA AEHAOEHUOAEUHOAEHOAEUIHOAIHOAUEHOAUIEHOAUHOIAUHOIHU AEOUIAHEOAUIEHOUIAHEOIHUAEOUIAHEOIUAHEOIA HUEOIAUHOAEUIHOAIEHOAIEUHIOAEUHOAIEHIOAEHIOEHIOUE HOIAEUHAIOEUHAOE

Rota Para Criar Listas

Controller Para Criar Listas

O controller ListController.php que vou criar para minhas listas é igualzinho ao TaskController.php, claro que com leve adaptações.

View Para Criar Listas

A view para criar listas foi é um trabalho de preguiçoso: copiar add_task.blade.php, colar e renomear para add_list.blade.php.
E ai, pra não dizer que é fácil demais, só alterar o Form::open().

Criando o Model List

¬¬
Sério que eu vou precisar dizer como faz?

Dúvidas???
Deixe um comentário ou veja esse projeto no GitHub:
https://github.com/frenetic/todovel

18 thoughts on “ToDoVel [Parte 13] Criando Listas de Tasks

  1. Parabéns pela sequência de posts, bem intuitivo, assim como você comecei a estudar Django e Rails devido ser cansativo trabalhar com coisas repetidas no php.

    Após conhecer o Laravel, descobri uma maneira de trabalhar com a liguagem que mais gosto =D.

    Poderia criar tutoriais futuros sobre a criação de bundles, e fazer upload de imagens com ajax.

  2. Ola,

    No Form:open, apareceu uma mensagem de erro. Ajustei para o action para “ListController@postCreate” e resolveu.

    Grato,
    Helder

  3. Bom dia, eu gostaria primeiramente de agradecer pela iniciativa de criar este tutorial para difundir ainda mais o Laravel 4, mas eu também gostaria de questionar o seu método bem “liberal”.
    Este curso apresenta muitos erros de escrita e algumas inconsistências no código, o que acaba afastando quem quer encarar o Laravel como uma coisa mais séria.
    Seria legal dar uma revisada no que foi escrito para ter a certeza que o código funciona como deveria, pois isso afeta também a credibilidade do autor.

    Abraço.

    1. Os código funcionam no ambiente proposto no início do projeto, Laravel 4 beta 4.
      99% dos códigos funcionam sem alterações no Laravel 4, visto que poucas coisas foram alteradas.

      Os artigos apresentados aqui não são um curso.
      São uma demonstração prática de como o Laravel 4 funciona.
      Eu apenas desejei documentar uma experiência de introdução ao Laravel 4.
      Escrevi tudo enquanto programava cada etapa, para ter os artigos bem fiéis a forma de fazer.
      Os artigos são divididos em simples etapas e são curtos pelo simples motivo de eu ter pouco tempo para me dedicar a eles.
      Também, quase nunca tive tempo para revisar.
      Após escrever, eu sempre dava uma lida rápida e publicava.
      Logo, alguns erros de digitação, concordância verbo-nominal e até conjugação verbal podem ter ocorrido.

      Eu realmente gostaria de ter mais tempo para melhorar os artigos, atualizar a biblioteca CSS/JavaScript que faz highlight dos códigos e corrigir os erros de português.
      Eu gostaria bastante de ter uma melhor documentação de introdução ao programador PHP curioso no Laravel.
      Mas, no momento, tenho outros focos que demandam muito mais tempo.

      Fica então o convite: após ler a documentação do Laravel (http://laravel.com), faça seu tutorial e divulgue na comunidade brasileira de Laravel (http://laravel.com.br)

      1. Falar do que ta pronto é fácil.
        Vejo isso como uma introdução ao Laravel e não uma forção, como toda linguagem, com o tempo a gente vai se aperfeiçoando.

        Vamos ficar no aguardo de um tutorial da parte do Sr. Marcelo.

    2. Chega dá vontade de rir.

      HAHAEOUIAEHIOEHIOEHOIAHUEOAUHEOAHUEOAUIEH OIHOAIHOAEIHIOAEUHOAIHOAUHIOHUAOIUHEWOHUAEOHAE OUHEOUIHAEOUAHOIHUEOHAEIHAEOHAEOIHAEIOHUA AEHAOEHUOAEUHOAEHOAEUIHOAIHOAUEHOAUIEHOAUHOIAUHOIHU AEOUIAHEOAUIEHOUIAHEOIHUAEOUIAHEOIUAHEOIA HUEOIAUHOAEUIHOAIEHOAIEUHIOAEUHOAIEHIOAEHIOEHIOUE HOIAEUHAIOEUHAOE

  4. Muito bom o post. Fiquei o feriado inteiro sem olhar para computador, finalmente consegui isso… 😉

    Para criar o migration, não sei, mas tive que fazer assim php artisan migrate:make add_lists e não migration como vc passou, mas criou, sem crise, a minha dúvida e problema foi depois que escrevi o código do migration AddLists, pois quando fui rodar o php artisan migrate para poder criar/alterar as tabelas ele me apagou tudo do banco, inclusive da tabela migrations, e dai criou as tabelas. Fiz algo de errado?

    Muito obrigado mesmo por toda ajuda.

    1. Você está certo, é MIGRATE mesmo.
      Não sei por que escrevi Migration…

      Se o Laravel apagou tudo, inclusive a tabela de migrations, você não fez nada de errado.
      Quem fez foi o Laravel…
      Se você conseguir reproduzir esse erro novamente, recomendo abrir um bug com o pessoal da linguagem.

      1. Opa, entendi, mas tentei refazer algumas coisas e não deu o erro, funcionou td, ainda bem que estou em teste e nada de importante foi apagado, mas com isso aprendi mais uma fez, SEMPRE fazer BACKUP antes.
        Valew

  5. Muito bom a série, queria ter ‘descoberto’ esse material antes.. rsrs

    Queria apenas salientar que no ListController.php deu pau aqui, resolvi alterando o seguinte:

    return Redirect::to(‘list/create’)->withErrors($validacao);

    por

    return Redirect::to(‘list/add’)->withErrors($validacao);

    É isso. Parabéns pela série. 😉

Deixe uma resposta

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