我在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->用户的所有方法,就像在控制器中一样吗?
答案 0 :(得分:0)
您可以使用此帖子详细介绍的导入: https://stackoverflow.com/a/13140816/1081396
App::import('Model', 'SystemSettings.SystemSetting');
$settings = new SystemSetting();
$mySettings = $settings->getSettings();
在您的示例中,它将是:
App::import('Model', 'Users.User');
$user = new User();
$allUsers = $user->find('all');
print_r($allUsers);
您最好在模型的开头使用 import 。
答案 1 :(得分:0)
您也可以使用它来加载模型
$this->loadModel('User');
并通过
访问所有功能$this->User