【发布时间】:2012-11-21 20:24:46
【问题描述】:
我在 CakePHP 的模型中创建了一个自定义验证函数。在阅读了类似的问题后,我了解到我可以使用ClassRegistry::init('Model'); 在我当前的模型中加载一个外国模型。但它并没有更多地说明语法以及之后如何实际使用它。这是我尝试过的,但是当我尝试打印数组以查看它是否包含正确的东西时,什么都没有“发生”。基本上我想提取用户数据以在我的验证中使用它。
class Booking extends AppModel {
public $name = 'Booking';
public $validate = array(
'start_time' => array(
'noOptionViolation' => array(
'rule' => 'noOptionViolation',
'allowEmpty' => false
)
),
);
public function noOptionViolation ($start_time) {
$this->User = ClassRegistry::init('User');
$allUsers = $this->User->find('all');
print_r($allUsers);
}
这是正确的语法吗?我可以像在控制器中一样使用 $this->User 的所有方法吗?
【问题讨论】:
-
其实,有些事情正在发生。
$allUsers包含预期的数据,就像在控制器中一样。因此,这似乎是一种将外部模型数据提取到当前模型中的简单方法。如果我可以访问所有正常的模型方法,它只会留下问题。可能是的。