L'enregistrement des données avec saveAll() dans CakePHP

Cela pourrait ne pas être le problème avec d'égouttage, la situation est comme ça. J'ai le tableau des messages, et le tableau sent_messages, qui détient le message d'id et l'id utilisateur. Les modèles sont créés, où Messaage hasMany SentMessage, et SentMessage belongsTo Message. J'ai besoin d'enregistrer un seul message dans messages table, et enregistrer les id utilisateur et id de message dans *sent_messages* table. Le problème commence quand j'essaie d'enregistrer que dans MessageController. Voici le code:

function custom() {
    if (!empty($this->data)) {
        $this->loadModel('User');
        $userIDs = $this->User->listActiveUsers();
        $this->data['Message']['message_type_id'] = 2;
        if ($this->Message->save($this->data)) {
            array_pop($this->data);
            foreach ($userIDs as $key => $value ) {
                $this->data['SentMessage'][$key]['user_id'] = $value;
                $this->data['SentMessage'][$key]['message_id'] = $this->Message->getLastInsertID();
            }
            //die($this->Message->SentMessage->saveAll($this->data));

            if ($this->Message->SentMessage->saveAll($this->data)) {
                $this->Session->setFlash('Data saved', 'success');   
            }
            else {
                $this->Session->setFlash('Data not saved', 'error');
            }    
        }
    }  
}

Toute aide serait appréciée.

  • Et quel est le problème exactement?
  • Le problème est-il l'habitude de sauvegarder les données de sent_messages table. Il enregistre les données dans la table message, mais pas dans sent_messages. Et des suggestions sur l'utilisation de loadModel de cette façon? Est-ce une bonne pratique?
InformationsquelleAutor skywalker | 2012-03-08