Bonsoir,
décidément j'enchaine les soucis sur ce chapitre ( CakePHP, les associations : http://www.grafikart.fr/formation/cakephp/associations-model )
Je n'arrive pas à faire la sauvegarde d'une catégorie puis de plusieurs posts (20min42sec), avec un seul post ca marche :
$data2 = array(
'Category' => array(
'name' => 'Voyage'
),
'Post' => array(
'name' => 'Italie',
'content' => 'Lorem ipsum italie rome etc'
)
);
Avec deux ca ne fonctionne pas...
$data2 = array(
'Category' => array(
'name' => 'Voyage'
),
'Post' => array(
array(
'name' => 'Italie',
'content' => 'Lorem ipsum italie rome etc'
),
array(
'name' => 'Espagne',
'content' => 'Lorem ipsum espagne madrid etc'
)
)
);
Pourtant quand je debug($data2) j'ai bien :
array(
'Category' => array(
'name' => 'Voyage'
),
'Post' => array(
(int) 0 => array(
'name' => 'Italie',
'content' => 'Lorem ipsum italie rome etc'
),
(int) 1 => array(
'name' => 'Espagne',
'content' => 'Lorem ipsum espagne madrid etc'
)
)
)
Mes fichiers
Category.php
<?php
class Category extends AppModel {
public $hasMany = array(
'Post' => array(
'dependant' => true
)
);
}
Post.php
<?php
class Post extends AppModel {
public $belongsTo = array(
'Category' => array(
'counterCache' => true
)
);
}
PostsController.php
<?php
class PostsController extends AppController {
public function index (){
$categories = $this->Post->Category->find('all');
$data2 = array(
'Category' => array(
'name' => 'Voyage'
),
'Post' => array(
array(
'name' => 'Italie',
'content' => 'Lorem ipsum italie rome etc'
),
array(
'name' => 'Espagne',
'content' => 'Lorem ipsum espagne madrid etc'
)
)
);
debug($data2);
$this->Post->saveAssociated($data2);
}
Sachant que dans la formation, Jonathan écrit une ébauche de code sans le tester, il me semble pourtant avoir écrit correctement, mais lorsque que je fais l'enregistrement, la catégorie est bien créée, par contre dans la table 'posts' j'ai une ligne vide avec un 'id' et un champs 'created' a '0000-00-00 00:00:00'
Voila, Merci d'avance à ceux qui pourront m'aider.
J'ai bien re-re-lu l'api 2.3 et l'exemple du cook book 2.0
" For saving a record along with its related records having hasMany association, the data array should be like this: "
$data = array(
'Article' => array('title' => 'My first article'),
'Comment' => array(
array('body' => 'Comment 1', 'user_id' => 1),
array('body' => 'Comment 2', 'user_id' => 12),
array('body' => 'Comment 3', 'user_id' => 40),
),
);
mes données :
$data = array(
'Category' => array('name' => 'Voyage'),
'Post' => array(
array('name' => 'Italie', 'content' => 'Lorem ipsum italie rome etc'),
array('name' => 'Espagne', 'content' => 'Lorem ipsum espagne madrid etc'),
),
);
Quelqu'un a une idée ?