Bonjour,
voila j'aimerai pouvoir assigné plusieurs catégorie à un 'post', j'aimerai donc savoir comment le mettre en forme sur ma base de donné ainsi que sur mon php/cake pour avoir des multi-select (sachant quand mono sélection, pas de problème)
1- le 'category_id' dans 'posts' sous quel forme doit il être pour lister les catégories sélectionné (à la base il est en 'INT')

Controller

public function add() {
         /* Lister les categories */
        $this->set('categories', $this->Post->Category->generateTreeList(NULL,NULL,NULL, '---'));

        if ($this->request->is('post')) {
            if ($this->Post->save($this->request->data)) {
                $this->Session->setFlash('Votre article est sauvegarder.');
                $this->redirect(array('action' => 'index'));
            }
        }
    }

Vue

echo $this->Form->create('Post');
echo $this->Form->inputs(array(
    'titre'=> array('label'=>'Titre'),
    'presentation'=> array('rows' => '3'),
    'contenu'=> array('rows' => '3'),
    'Post.category_id'=> array('label'=>'Catégorie : ','type'=>'select','multiple'=>'checkbox', 'options'=>$categories)
));
echo $this->Form->end('Enregistrer');

Erreur en gardant INT dans posts.category_id (ce qui est normal)

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Array' in 'field list'

Donc voila, comment mis prendre pour enregistrer plusieurs catégories/tags sur un post/article?

1 réponse


Dans ce cas là il faut passer sur une relation Has And Belongs To Many (HABTM), regarde au niveau de la doc parcequ'elle n'est pas évidente.
Pour résumer il faut passer par une table de liaison qui va permettre de faire la liaison entre les catégories et les posts