因此,我遇到致命错误,因为当控制器调用该方法时,该方法未定义。虽然这不是真的,因为该方法在类模型中。
StudentsController.php
<?php
class StudentsController extends AppController{
public function index(){
$students = $this->Student->find('all');
$this->set('students', $students);
}
public function add(){
if($this->request->is('post')){
$this->formatData($this->request->data);
}
}
}
?>
然后是我的模特: Student.php(模特)
<?php
class Student extends AppModel{
var $studentData;
public function formatData($studentData){
if(is_null($studentData)){
return false;
}else{
echo $studentData;
}
}
}
?>
答案 0 :(得分:2)
你没有在模型上调用方法,而是在没有这种方法的控制器上,因此错误。
虽然控制器可能会自动加载模型,但它不公开其API,它只是通过魔术属性访问器提供模型的实例。
所以而不是
$this->formatData($this->request->data);
你必须像这样调用模型上的方法:
$this->Student->formatData($this->request->data);
另见