我想通过在模型中的数据库操作和控制器中的逻辑部分来分离数据库功能和逻辑部分。早些时候,我拥有了控制器本身的动作部分中的所有代码。我尝试了一些东西,但它不起作用。CakePHP中的模型和控制器结构
这就是我在前面有:
/* 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));
}
现在我改变了它一下,它不工作:
/* 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;
}
编辑:
我已经尝试过其他方式..在模型中具有完整的功能,并从控制器调用该功能。这种方法是否正确?
/* 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);
}
不,这不是它。从你最近的问题来看,重新阅读蛋糕手册(book.cakephp.org)似乎会让你受益匪浅。应该只花你几个小时,但它会回答你的问题。 另请查看关于Cakephp的IBM DeveloperWorks教程系列(它在scribd上,只是搜索它)。有点过时了,但它是洞察Cake哲学的最佳入门书。 – 2009-06-11 16:17:36