CakePHP Brasil

30 junho 2008

Usando NOT IN nas pesquisas e exclusões

Arquivado em: CakePHP — Juan Basso @ 10:25 pm

Pessoal,

Depois de um tempo sumido, estou aí postando. Muito trabalha impede a gente de ficar postando toda hora, infelizmente.

Essa dica de agora, aprendi fazendo uma aplicação que precisei. Precisava apagar todas as fotos de um imóvel que não estivessem em uma lista. Para fazer isso, usei o seguinte:

1
$this->Photo->deleteAll(array('NOT' => array('Photo.id' => $this->data['Photos']), 'Photo.building_id' => $id);

Onde $this->data['Photos'] é um array com os id’s que não quero excluir.

Simples não?

Abraços e até a próxima.

4 junho 2008

Sai RC1 do CakePHP 1.2

Arquivado em: Outros — Tags:, , , , — Juan Basso @ 10:27 pm

Boas novas, cakers!

Saiu hoje a nova versão do CakePHP 1.2, através da release candidate (RC) 1, usando a revisão 7119.

As maiores alterações são alterações no modo de utilizar as condições e colocar vários métodos em desuso.

Para quem quiser mais informações sobre o lançamento, consulte o link oficial (no Bakery). Quem quiser fazer o download agora, clique aqui.

 

Abraços e bom uso para todos.

2 junho 2008

Novos métodos de callback para componentes

Arquivado em: CakePHP — Tags:, , — Juan Basso @ 1:22 pm

Recentemente, foram adicionados três novos métodos de callback para os componentes: beforeRender, beforeRedirect e shutdown.

Como o próprio nome já diz, o beforeRender() é chamado antes da view ser renderizada, mas depois do beforeRender() do controller:

1
2
3
4
// no seu componente
public function beforeRender($controller) {
    // faça alguma coisa
}

O beforeRedirect() também é obvio, é chamado antes de um redirect ser executado:

1
2
3
4
// no seu componente
function beforeRedirect($controller, $url, $status = null, $exit = true) {
    // faça alguma coisa
}

Retornando um valor você pode substituir os valores que foram passados no redirect original. Por exemplo:

1
2
3
4
function beforeRedirect($controller, $url, $status = null, $exit = true) {
    // return '/redirect/target';  // um simples valor é tratado como uma URL
    return array('url' => '/redirect/target', 'status' => 307);
}

O último método de callback é o shutdown(). Ele é chamado depois de Controller::render() e antes de Controller::afterFilter():

1
2
3
4
// no seu componente
function shutdown($controller) {
    // faça alguma coisa
}

Continuem seus bolos…

Texto traduzido de New callback methods for components

Powered by WordPress