CakePHP - 在当前模型中使用不同的模型

时间:2012-11-20 21:02:06

标签: class cakephp model

我在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->用户的所有方法,就像在控制器中一样吗?

2 个答案:

答案 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