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;
}
:
내가 시도 그것을 다른
이
내가 이전 한 것입니다 방법 .. 모델에서 전체 기능을 가지고 그냥 컨트롤러에서 해당 함수를 호출하십시오.이 방법은 정확합니까?/* 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 철학에 대한 통찰력을 얻는 최고의 입문서입니다. –