如何调试模型中的函数变量

时间:2014-06-08 01:04:06

标签: cakephp cakephp-2.3

我正在使用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 

请建议如何在模型中的函数中显示我设置的变量,以便在视图中显示错误消息。

感谢。

1 个答案:

答案 0 :(得分:0)

Controller中的哪个部位正在调用此功能?

由于Model中的函数返回一个值,您必须通过传递$check$limit然后set返回值来调用Controller中的函数,您的视图可以访问它。

控制器:

$this->set('result', $this->Model->limitDuplicates($check, $limit));

您的视图现在应该可以访问结果变量,假设模型,视图和控制器都正确相关。另外,摆脱模型中的set语句。