Cela va faire des heures que je galère et surtout que je perd mon temp sur un problème de behavior qui je suis sûr est tout bête à résoudre.
Je suis en train de suivre le tuto "CakePHP Draft Plugin"
Mais je bloque dès le départ.
Il ne reconnait pas mon behavior.
Voici mon model :
<?php
class Actu extends AppModel{
public $belongsTo = 'Organisation';
public $actsAs = array('Media.Media','Draft.Draft'=> array(
'conditions' => array('actus' => 1)
));
}
Mon controller :
<?php
class ActusController extends AppController{
public function membre_add($id = null) {
if(!empty($this->request->data)){
$this->Actu->save($this->request->data);
$id = $this->Actu->id;
}
if(!$id){
$id = $this->Actu->getDraftId();
}
$this->request->data = $this->Actu->findById($id);
}
}
le DraftBehavior.php est bien installé dans app/plugin/Draft/Model/Behavior
Je charge bien le plugin dans le bootstrap :
CakePlugin::load('Draft');
Mais j'ai systématiquement l'erreur :
Fatal Error
Error: Call to a member function getDraftId() on a non-object
File: E:\RENAUD\LINNOVATEUR\www\app\Controller\ActusController.php
Line: 15
Notice: If you want to customize this error message, create app\View\Errors\fatal_error.ctp
Problème de convention avec le nommage des tables. Un outil ici : http://inflector.cakephp.org/
http://inflector.cakephp.org/news
Là c'est un peu particluier news est invariable.
Je me demande si le problème ne vient pas du nom de ma table "Actus", pensez que le problème peut venir de la ?
Apparemment cela vient de la.
J'ai essayé avec :
Table : Actus
Controller : Actus
Modele : Actu
Cela ne marche pas
Avec
Table : News
Controller : News
Modele : New
Cela ne marche pas.
En revanche cela fonctionne avec :
Table : Actualities
Controller : Actualities
Modele : Actuality
Mais pourquoi cela me marche pas avec les 2 premiers nommages ?
un petit conseil pour ne pas trop s'emmeler les pinceaux avec les conventions : prends l'habitude de nommer tes tables et models en anglais. Ca évitera toutes les petites subtilités de notre langue.
Yes,
tu as tout à fait raison. Cependant je ne comprend toujours pas pourquoi j'ai toujours le problème avec le schéma suivant :
Avec
Table : News
Controller : News
Modele : New
Ah oki, je l'avais saisie dans l'outils mais je n'avais essayé que "new", et je viens de comprendre que l'on peut aussi saisir directement les pluriels également.
Merci beaucoup pour ta réponse, cela va beaucoup m'aider.