Iモデルのデータベース操作とコントローラのロジック部分を持つことで、データベースの機能とロジック部分を分離したいと考えています。以前私はコントローラ自体のアクション部分にすべてのコードを持っていました。私は何かを試みたが、うまくいかない。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;
}
EDIT:
私は別のことを試してみましたモデル内のすべての機能を持ち、その機能をコントローラから呼び出すだけです。この方法は正しいですか?
/* 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上で、それを検索するだけです)をチェックしてください。少し古いですが、それはケーキの哲学を洞察するための最良のプライマーです。 –