J'ai créé une application CakePHP qui permet à un utilisateur de créer des publications et d'y ajouter des tags (rubriques). La structure de la base de données et des associations peut être vue ici: Setting up contains for a join table in CakePHPEnregistrement des données de modèle associées qui doivent être uniques
J'ai réussi à extraire les données en utilisant Contain via la table de jointure. Mais maintenant j'essaye de construire la partie où un utilisateur entre un sujet et puis l'enregistre BOTH dans la table de sujet et la table de Topic_post.
Je le code suivant mon ajouter une nouvelle méthode post:
if ($this->request->is('post'))
{
//$this->Post->create();
if ($this->Post->save($this->request->data))
{
// Save extra data
$this->Post->saveField('user_id', $this->Auth->user('id'));
$this->Post->saveField('datetime', date('Y-m-d H:i:s'));
$this->Post->saveField('modified', date('Y-m-d H:i:s'));
$this->Post->saveField('status', 1);
// Build slug
$post_title = Sanitize::html($this->request->data['Post']['title'], array('remove'=>true, 'quotes' => ENT_NOQUOTES));
$post_title = String::truncate($post_title, 50, array('exact'=>false,'html'=>false,'ending'=>''));
$this->Post->saveField('slug', Inflector::slug($post_title));
// Redirect the user to the newly created post (pass the slug for performance)
$this->redirect(array('controller'=>'posts','action'=>'view','id'=>Tiny::toTiny($this->Post->id),'slug'=>$this->Post->slug));
}
else
{
$this->Session->setFlash('Server broke!');
}
}
Alors ce que je dois faire maintenant enregistrer les données de sujet connexe qui est tapé ici dans la vue:
<?php echo $this->Form->create(); ?>
<?php echo $this->Form->input('Post.title'); ?>
<?php echo $this->Form->input('Post.content', array('type'=>'textarea','label'=>false)); ?>
<?php echo $this->Form->input('Topic.title', array('type'=>'textarea','label'=>'Topics')); ?>
<button type="submit" class="orangeButton small">Create</button>
<?php echo $this->Form->end(); ?>
J'ai regardé les docs CakePHP et il semble que quelque chose comme saveAll est ce dont j'ai besoin? Mais je suis confus car je ne suis pas sûr à 100% comment l'utiliser aussi il est important de noter qu'un utilisateur peut enregistrer plus d'un sujet dans la base de données et les sujets eux-mêmes sont tous uniques, par exemple vous ne pouvez pas créer un sujet qui existe déjà, il utilisera simplement l'identifiant existant pour l'éditeur de liens.
Quelqu'un peut-il aider? Comme je pense que c'est assez complexe ...
Des mises à jour? Merci – Cameron