Bonjour,
Comment créer le SLUG du title dans le beforeSave() que je connaissais dans cakephp 2 ?
J'ai essayer de suivre le book mais rien : http://book.cakephp.org/3.0/fr/orm/behaviors.html
Bonjour,
Justement c'est ce que j'ai fais ::
App\Controller
$contents = $this->Contents->patchEntity($contents,$this->request->data);
$contents->slug = $contents->setSlug($contents->title);
App\Model\Entity
use Cake\ORM\Behavior;
use Cake\Utility\Inflector;
public function initialize(array $config)
{
$this->addBehavior('Sluggable');
}
public function setSlug($title)
{
return Inflector::slug(strtolower($title));
}
Pour commencer, mets ton code dans la balise appropriée.
Ensuite, tu mélanges un peu tout là et tu ne respectes pas la doc de CakePHP, ça ne risque pas de fonctionner,.
Dans l'exemple donné via le lien que je t'ai fourni, c'est :
protected function _setTitle($title)
{
$this->set('slug', Inflector::slug($title));
return $title;
}
Et ton code n'y ressemble pas du tout.
Soit tu utilises Un Behavior, ou alors tu utilises un setter, mais tu ne fais pas les deux en même temps.
Surtout que le setter tu dois le faire sur le champ du titre et non du slug si tu suis l'exemple donné ci-dessus.
En plus de ça, il met son sujet résolu sur du code faux.
Bonjour.
Si tu veux, tu peux utiliser le Behavior que partage Xety : Xety/Cake3-Sluggable que tu peux installer facilement avec composer.
Ou alors, tu peux tout simplement faire ton slug avec un setter, tu as justement un exemple ici pour le slug : Accesseurs & Mutateurs.
Bonjour @Lartak
si j'ai mis "Il a repondu à mon sujet" c'est que ça marche, donc pour moi j'ai répondu a ma propre question "Comment créer le SLUG du title dans le beforeSave() ".
Maintenant que tu expliques mieux comment faire, ça c'est bien de l'entreaide.