Estoy siguiendo la convencion de nombres de tablas (en CAKE), y queriendo guardar datos de una relacion muchos a mucho (HABTM).
Mi esquema es db es:
users (id, username)
user_words (id, user_id, word_id)
words (id, word)
Segun lo explicado aqui, to debería ir sobre ruedas:
http://book.cakephp.org/es/view/1034...del-Data-HABTM
Pero no me funciona. Grabando desde word/add solo se llena la tabla word. La tabla de relacion no se llena.
Esta es mi vista:
Código PHP:
Ver originalecho $form->create();
//echo $form->hidden('id');
echo $form->input('User.id', array('type'=>'hidden', 'value' => $user_data['User']['id'])); echo $form->input('name', array( 'label' => 'Nueva Palabra para '.$user_data['User']['username'], 'maxLength' => 90));
echo $form->end('Agregar');
Esta es mi accion words/add:
Código PHP:
Ver originalfunction add()
{
{
$this->Word->create();
if ($this->Word->save($this->data))
$this->redirect('/users/display');
}
$user_id = $this->params['pass'][0];
$user_data = $this->Word->User->find('first', array('conditions' => array('User.id' => $user_id)));
$this->set('user_data',$user_data);
}
Y mi modelo:
Código PHP:
Ver originalclass Word extends AppModel
{
var $hasAndBelongsToMany = array( 'className' => 'User', //sWord
'joinTable' => 'users_words',
'foreignKey' => 'word_id',
'associationForeignKey' => 'user_id'
));
}
Anteriormente use una alternativa: crear un modelo users_word, y un controlador, estableciendo las relaciones hasMany belongTo hasMany, pero me pasaba lo mismo. Podia grabar en la tabla (de relacion) y no me grababa en la tabla (words).
En fin, el problema es que no me funciona grabar en dos tablas a la vez. Intenté setear todo en InnoDB pero tampoco cambia nada.