Au secours ! Problème simple de Behavior

Par lupyo, il y a 11 ans


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

8 réponses

lupyo, il y a 11 ans

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 ?

lupyo, il y a 11 ans

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 ?

lupyo, il y a 11 ans

Merci, je vais me pencher sur cet outil.

amethyste, il y a 11 ans

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.

lupyo, il y a 11 ans

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

lupyo, il y a 11 ans

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.