我想通過在模型中的數據庫操作和控制器中的邏輯部分來分離數據庫功能和邏輯部分。早些時候,我擁有了控制器本身的動作部分中的所有代碼。我嘗試了一些東西,但它不起作用。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