0

我在 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 的所有方法吗?

4

2 回答 2

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);

您最好在模型开始时使用导入

于 2012-11-20T21:42:43.857 回答
0

您也可以使用它来加载模型

$this->loadModel('User');

并通过以下方式访问所有功能

$this->User
于 2012-11-21T12:24:46.030 回答