我正在使用Cakephp 2.3。 在我的模型中,我有一个检查重复项的功能。我想检查重复的数量并将其报告给用户。但是,我在函数中设置的变量似乎在视图中不可用。
型号: class Student扩展AppModel {
public $validate = array(
'promotion_code' => array(
'rule' => array('limitDuplicates', 1),
'message' => "there are x duplicates" )
);
public function limitDuplicates($check, $limit) {
$existing_promo_count = $this->find('count', array(
'conditions' => $check,
'recursive' => -1
));
$this->set('results', $existing_promo_count);
return $existing_promo_count < $limit;
}
}
在视图中
debug("duplicate count is ". $results);
结果
Notice (8): Undefined variable: results
请建议如何在模型中的函数中显示我设置的变量,以便在视图中显示错误消息。
感谢。
答案 0 :(得分:0)
您Controller
中的哪个部位正在调用此功能?
由于Model中的函数返回一个值,您必须通过传递$check
和$limit
然后set
返回值来调用Controller中的函数,您的视图可以访问它。
控制器:
$this->set('result', $this->Model->limitDuplicates($check, $limit));
您的视图现在应该可以访问结果变量,假设模型,视图和控制器都正确相关。另外,摆脱模型中的set
语句。