Orkut Gmail Agenda Docs Web mais »
Grupos visitados recentemente | Ajuda | Acessar
Página inicial dos Grupos do Google
Cake - Insert ao invez de update
Há um número excessivo de tópicos que aparecem em primeiro plano neste grupo. Para fazer com que este tópico apareça primeiro, elimine essa opção de um outro tópico.
Erro ao processar a solicitação. Tente novamente.
sinalizar
  3 mensagens - Recolher todas  -  Traduzir tudo para Traduzido (ver todos os originais)
O grupo no qual você está postando é um grupo da Usenet. As mensagens postadas neste grupo farão com que o seu e-mail fique visível para qualquer pessoa na internet.
Sua resposta não foi enviada.
Postagem publicada
 
De:
Para:
Cc:
Encaminhar para
Adicionar Cc | Adicionar Encaminhar para | Editar Assunto
Assunto:
Validação:
Com o objetivo de verificação, digite os caracteres que você vê na figura abaixo ou os números que ouvir ao clicar no ícone de acessibilidade. Ouça e digite os números que ouvir
 
João Vagner  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 23 set 2008, 10:05
De: João Vagner <joao.vag...@gmail.com>
Data: Tue, 23 Sep 2008 10:05:11 -0300
Local: Ter 23 set 2008 10:05
Assunto: Cake - Insert ao invez de update

Pessoal,

Estou fazendo uma galeria com o cake, e o que me ocorre é o seguinte, quando vou editar uma galeria, ao clicar em update, ele me faz um insert ao invez do update, olhem o action dentro do controller galleries_controller.php

function admin_edit($id = null) {
$this->layout='admin';
if (!$id && empty($this->data)) {
$this->Session->setFlash(__('Invalid Gallery', true));
$this->redirect(array('action'=>'index'));

}

if (!empty($this->data)) {
if ($this->Gallery->save($this->data)) {
$this->Session->setFlash(__('The Gallery has been saved', true));
$this->redirect(array('action'=>'index'));
} else {

$this->Session->setFlash(__('The Gallery could not be saved. Please, try again.', true));

}
}

if (empty($this->data)) {
$this->data = $this->Gallery->read(null, $id);

}

$categories = $this->Gallery->Category->find('list',array('fields'=>array('Category.id', 'Category.titulo'), 'value'=>'Category.id'));
$packages = $this->Package->find('list', array('fields'=>array('Package.id', 'Package.titulo'), 'value'=>'Package.id'));
$this->set(compact('categories', 'packages'));

}

Abaixo o Model para ver se algo esta errado com ele, pois verifiquei e não encontrei o motivo:

<?php
class Gallery extends AppModel {
var $name = 'Gallery';

//The Associations below have been created with all possible keys, those that are not needed can be removed

var $belongsTo = array(

'User' => array('className' => 'User',

'foreignKey' => 'user_id',

'conditions' => '',

'fields' => '',

'order' => ''

)

);

var $hasAndBelongsToMany = array(

'Category' => array('className' => 'Category',

'joinTable' => 'categories_galleries',

'foreignKey' => 'gallery_id',

'associationForeignKey' => 'category_id',

'unique' => true,

'conditions' => '',

'fields' => '',

'order' => '',

'limit' => '',

'offset' => '',

'finderQuery' => '',

'deleteQuery' => '',

'insertQuery' => ''

),

'Package' => array('className' => 'Package',

'joinTable' => 'galleries_packages',

'foreignKey' => 'gallery_id',

'associationForeignKey' => 'package_id',

'unique' => true,

'conditions' => '',

'fields' => '',

'order' => '',

'limit' => '',

'offset' => '',

'finderQuery' => '',

'deleteQuery' => '',

'insertQuery' => ''

)

);

}

?>

João Vagner
j...@iw2.com.br
www.iw2servers.com.br
#IW² blog [ http://iw2servers.com.br/blog ]

011 8923-9648


    Responder ao autor    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Danillo Cesar  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 25 set 2008, 17:39
De: "Danillo Cesar" <danil...@gmail.com>
Data: Thu, 25 Sep 2008 17:39:05 -0300
Local: Qui 25 set 2008 17:39
Assunto: Re: [arqHP: 40326] Cake - Insert ao invez de update

Não tenho certeza mais acho que no cake ele faz o seguinte:

Se na hora de chamar o save existir o id, ele faz update em vez de salvar,
se não existir o id então ele sabe que é para criar um novo registro.

2008/9/23 João Vagner <joao.vag...@gmail.com>

--
-----------------------------------------
Danillo César de O. Melo
www.sook.com.br

    Responder ao autor    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Guilherme David da Costa  
Ver perfil   Traduzir para Traduzido (ver original)
 Mais opções 29 set 2008, 18:58
De: "Guilherme David da Costa" <guilherme.dco...@gmail.com>
Data: Mon, 29 Sep 2008 18:58:33 -0300
Local: Seg 29 set 2008 18:58
Assunto: Re: [arqHP: 40414] Re: Cake - Insert ao invez de update

Concordo com o Danilo.
Ve se você não está esquecendo um input hidden com name="data[Gallery][id]"
Voce tem que colocar o id do registro que voce queira dar o update dentro
deste input.

Sem querer ser chato, mas voce poderia dar uma otimizada nesse código né?
Talvez usar isso:

function admin_edit($id = null) {
    $this->layout='admin';

    if (!empty($this->data)) {
        if ($this->Gallery->save($this->data)) {
            $this->Session->setFlash(__('The Gallery has been saved',
true));
            $this->redirect(array('action'=>'index'));
        } else {
            $this->Session->setFlash(__('The Gallery could not be saved.
Please, try again.', true));
        }
    } else {
        if (!$id) {
            $this->Session->setFlash(__('Invalid Gallery', true));
            $this->redirect(array('action'=>'index'));
        }

        $this->data = $this->Gallery->read(null, $id);
    }

    $categories =
$this->Gallery->Category->find('list',array('fields'=>array('Category.id',
'Category.titulo'), 'value'=>'Category.id'));
    $packages = $this->Package->find('list',
array('fields'=>array('Package.id', 'Package.titulo'),
'value'=>'Package.id'));
    $this->set(compact('categories', 'packages'));

}

E no model eliminar todas as colunas que estiverem atribuindo valores vazios
nos arrays.
Ficaria mais legível.

    Responder ao autor    Encaminhar  
É necessário Acessar antes de postar mensagens.
Para postar uma mensagem você precisa primeiro participar deste grupo.
Atualize seu apelido na página de configurações da inscrição antes de postar.
Você não tem a permissão necessária para postar.
Fim das mensagens
« Voltar às Discussões « Tópico recente     Tópico antigo »

Criar um grupo - Grupos do Google - Página inicial do Google - Termos de Uso - Política de Privacidade
©2009 Google