I Vous souhaitez séparer la fonctionnalité de base de données et la partie logique en ayant les opérations de base de données dans le modèle et la partie logique dans le contrôleur. Auparavant, j'avais tout le code dans la partie action du contrôleur lui-même. J'ai essayé quelque chose, mais ça ne marche pas.Modèle et structure de contrôleur dans CakePHP
C'est ce que j'avais plus tôt:
/* Controller */
function insertFormName(){
$formname=$_POST['formname'];
$ret = $this->Form->query("Select id from forms order by id DESC LIMIT 1");
$newid=$ret[0]['forms']['id'];
$this->Form->updateAll(array('Form.name' => "'$formname'"),array('Form.id' => $newid));
}
Et maintenant je l'ai changé un peu, ce qui ne fonctionne pas:
/* Controller */
function insertformname()
{
$this->data['Form']['formname']=$this->params['form']['formname'];
$this->Form->save($this->data);
$this->Form->updateAll(array('Form.name' => "'$formname'"),array('Form.id' => $newid));
}
/* Model */
function save($data)
{
$ret = $this->Form->query("Select id from forms order by id DESC LIMIT 1");
$newid=$ret[0]['forms']['id'];
$this->Form->updateAll(array('Form.name' => "'$formname'"),array('Form.id' => $newid));
return $newid;
}
EDIT:
Je l'ai essayé une autre façon .. Avoir toute la fonctionnalité dans le modèle et juste appeler cette fonction du contrôleur.Est-ce que cette méthode est correcte?
/* Model */
function saveFormName($data)
{
$this->formname=$data[$this->name]['formname'];
$ret = $this->Form->query("Select id from forms order by id DESC LIMIT 1");
$newid=$ret[0]['forms']['id'];
$this->Form->updateAll(array('Form.name' => "'$formname'"),array('Form.id' => $newid));
}
/* controller */
function insertformname()
{
$this->data['Form']['formname']=$this->params['form']['formname'];
$this->Form->saveFormName($this->data);
}
Non, ce n'est pas non plus. D'après vos questions récentes, il semble que vous seriez le plus à même de relire le manuel du gâteau (book.cakephp.org). Cela ne devrait vous prendre que quelques heures, mais cela répondra aux questions que vous avez. Consultez également la série de tutoriels IBM DeveloperWorks sur Cakephp (sur scribd, recherchez-la). Un peu démodé, mais c'est la meilleure introduction à la philosophie Cake. –