CakePHP 1.2 - Named params

Olá pessoal,

um recurso bem interessante do CakePHP 1.2 é o chamado named params, ou parâmetros nomeados, que consiste em enviar informações pela URL mas sem precisar ter uma “ordem” para isso.

Por exemplo:
www.dominio.net/controller/método/nome:Tulio/cidade:Pouso Alegre/

Assim podemos recuperar estes valores dentro do controller usando o seu nome e não mais dependendo da posição que ela está na URL.

Todos os parâmetros nomeados chegam ao controller dentro de $this->params[”named”], neste exemplo acima, teriamos $this->params[”named”][”nome”] e $this->params[”named”][”cidade”].

Vale lembrar que como o parâmetro nomeado pode ou não vir na URL, devemos verificar sua existência com isset antes de usá-lo.

Até a próxima pessoal, qualquer dúvida, comentem!

Comentários (5)

CakePHP 1.2 - Salvando registros

Olá pessoal,

atendendo a pedidos e aproveitando que por se tratar de um assunto interessante, vou falar sobre a inserção e atualização de dados no CakePHP 1.2.

A primeira mudança que encontramos é a inclusão do método set para o model, assim antes de salvarmos, validarmos e etc, devemos definir os dados usando o mesmo.

Como todos sabem o Cake usa um único método para criar e atualizar registros (o método save). Mas como diferenciar um do outro? Com o ID :) Se nos dados passados (setados) houver o id, será efetuado um update, senão um insert. Simples, não?

Exemplo:

PHP:
  1. $dados = array("Usuario"=>
  2. "id"=>1,
  3. "nome"=>"Tulio Faria"
  4. )
  5. );
  6.  
  7. $this->Usuario->set($dados);
  8. $this->Usuario->save();

Como em $dados tem o id (chave primária), neste caso, seria feito um update setando o nome para "Tulio Faria" do Usuario de id = 1.

Para fazermos o insert, bastaria tirar o id de dados.

Para atualizar um único campo, podemos usar um outro método, o saveField.

PHP:
  1. $this->Usuario->id = 1;
  2. $this->Usuario->saveField("nome", "Tulio Faria");

Neste caso, faria o mesmo efeito do exemplo do save, atualizando o nome para "Tulio Faria" para o Usuario de id = 1.

Bom é isso pessoal, qualquer dúvida comentem!

Abraços,

Comentários (7)

CakePHP 1.2: helper para paginação, simples, rápido e indolor

Olá pessoal,

eu venho usando o CakePHP 1.2 nos meus projetos recentes, e confesso que o quer já era bom ficou muitíssimo melhor.

Uma das novas características incorporadas ao core do CakePHP 1.2 é o helper para paginação e que salvou minha pele em um projeto, onde do dia para noite 10 registros viraram 6000, e resolvido com uma paginação em menos de 2 minutos.

Para usá-lo, começamos definindo os parâmetros da paginação, que pode ser feito de modo genérico para todos os models usados do controller (código aplicado no controller que terá paginação):

PHP:
  1. var $paginate = array('limit' => 50);

Neste caso definimos o tamanho da página de registros com o tamanho 50. Podemos ainda, adicionar conditions, fields, order, page e recursive, assim como é feito no findAll de um model.

Essa configuração será usada para todos os models deste controller. Se quisermos configurações diferentes para models diferentes, usaríamos:

PHP:
  1. var $paginate = array(
  2.  
  3. 'Model1'=> array('limit' => 50),
  4.  
  5. 'Model2'=> array('limit' => 20)
  6.  
  7. );

Depois de configurado, na hora de enviarmos os dados para o view, ao invés de usar findAll ou similares, usaremos:

PHP:
  1. $this->set("dados", $this->paginate("NomeDoModel"));

Pronto, agora só falta mostrar as páginas no view com:

PHP:
  1. Mostrando página: <?php echo $paginator->counter(array("separator"=>" de ")); ?>
  2.  
  3. ...
  4.  
  5. <?php echo $paginator->prev("Anterior"); ?>
  6.  
  7. <?php echo $paginator->numbers(); ?>
  8.  
  9. <?php echo $paginator->next("Próxima"); ?>

Depois disso é só testar e correr pro abraço :)

Bom pessoal, qualquer dúvida comentem! Abraços e até a próxima!

Comentários (12)

Que venha 2008!

Olá pessoal,

este é o último post de 2007. Últimos instantes de 2007. É sempre nessas horas que fazemos um balanço de tudo de positivo que ocorreu no ano e tudo que desejamos para o próximo.

Gostaria de desejar a todos vocês um excelente ano novo com muito sucesso e saúde!

Estou com muitas idéias para o blog para o próximo ano, se eu conseguir colocar grande parte delas em prática.

Abraços!

Comentário (1)

jQuery - FloatNumber Plugin

Olá pessoal,

criei um plugin pro jQuery para adicionar a possibilidade de formatar números como float de um input text logo após a digitação do mesmo. Pode ser usado com a máscara de entrada numeric de Sam Collet.

jquery.numeric.js (by Sam Collet)

jquery.floatnumber.js

Exemplo (Example)

Uso (Usage):

JAVASCRIPT:
  1. $(function(){
  2. // using numeric mask by Sam Collett (http://www.texotela.co.uk)
  3. $(".numeric").numeric(",");
  4. // floatnumber(separator, precision);
  5. $(".numeric").floatnumber(",",2);
  6. });

Bugs, críticas ou sugestões, comentem!

Comentários (9)

Feliz Natal!

Olá pessoal,

gostaria de desejar a todos vocês um feliz natal...

Cartão de Natal 2007

Abraços!

Comentário

Vídeo: Palestra no CONISLI 2007

Olá pessoal,

depois de muita briga com softwares de edição de vídeo :) . Finalmente consegui editar o vídeo de minha apresentação sobre CakePHP no CONISLI 2007.

É minha primeira palestra, então me desculpem por qualquer falha :)

Assistir agora!

Se possível, comentem com suas opiniões.

Abraços,

Comentário

Off: Lançamento Cogitum EP por DJ Fulvio

Olá pessoal,

este post é uma propaganda :)

Para quem não sabe, meu irmão é DJ. Antes que digam: "Grande coisa!", queria dizer que ele é diferente. Por quê? Simplesmente porque além de tocar ele ainda compõe. :)

Dia 27 de Dezembro deste ano, ele irá lançar seu primeiro EP, o Cogitum EP. Lançamento internacional no site: BeatPort.

Quem curte música eletrônica pode conferir o trabalho dele em:

www.djfulvio.com.br e www.myspace.com/deejayfulvio

Apesar de ouvir um bom e velho metal, tenho que confessar que ele manda bem :)

Tá feito o merchan ;)

Abraços a todos!

Comentário

Exploits of a Mom - acho que tenho idéia de nome pro meu filho

Olá pessoal,

esses dias achei este cartoon, muito bom por sinal.

Exploits of a Mom
Link original.

Tradução:
Quadro 1: "Oi, aqui é da escola do seu filho. Nós estamos tendo um problema de computador.
Quadro 2: Mãe: "Oh, ele quebrou alguma coisa?" Telefone: "De certa forma"
Quadro 3: Telefone: "Vocês realmente deram o nome de Robert '); DROP TABLE students; -- ? " Mãe: "Ah sim, pequeno Bobby Tables, como o chamamos"
Quadro 4: Telefone: "Bem, nós perdemos todos os registros de alunos deste ano. Espero que vocês estejam felizes" Mão: "E eu espero que vocês tenham aprendido a sanitizar suas entradas no banco de dados"

Eu ri demais quando li... Pena que não é pra qualquer um que eu posso mostrar isso, dificilmente quem não entenda um mínimo de SQL não entenderia a história.

Aliás, achei uma excelente idéia para nomear meu filho, quando eu for ter um (quem sabe) daqui uns 20 anos! rs

Abraços a todos,

Comentário

jQuery tabs - abas simples e leve

Olá pessoal,

nessa semana precisei fazer as famosas abas. Nada melhor que procurar um plugin pronto para jQuery. E não foi que eu encontrei. Mas só tem um problema: eu queria algo leve! A saída? Fazer a minha própria implementação, mais simples e pra minha situação mais eficiente.

O HTML ficou assim:

HTML:
  1. <!-- a lista de abas -->
  2.  
  3.     <ul id="abas">
  4.                 <li><a href="#tab1">Aba 1</a></li>
  5.                 <li><a href="#tab2">Aba 2</a></li>
  6.     </ul>
  7.  
  8. <!-- conteudo das abas -->
  9.     <div id="tab1" class="contaba">
  10.     <a name="tab1" />
  11.        Conteudo 1
  12.     </div>
  13.     <div id="tab2" class="contaba">
  14.     <a name="tab1" />
  15.        Conteudo 2
  16.     </div>

O código usando jQuery, somente isso:

JAVASCRIPT:
  1. $(function(){
  2. // abas
  3. // oculta todas as abas
  4. $("div.contaba").hide();
  5. // mostra somente  a primeira aba
  6. $("div.contaba:first").show();
  7. // seta a primeira aba como selecionada (na lista de abas)
  8. $("#abas a:first").addClass("selected");
  9.  
  10. // quando clicar no link de uma aba
  11. $("#abas a").click(function(){
  12. // oculta todas as abas
  13. $("div.contaba").hide();
  14. // tira a seleção da aba atual
  15. $("#abas a").removeClass("selected");
  16.  
  17. // adiciona a classe selected na selecionada atualmente
  18. $(this).addClass("selected");
  19. // mostra a aba clicada
  20. $($(this).attr("href")).show();
  21. // pra nao ir para o link
  22. return false;
  23. });

Com isso economizei alguns kb's deixando de usar o plugin :)

Abraços pessoal e até a próxima!

Comentários (6)

« Mais Antigos Mais Novos