Cakephp ClassRegistry :: init

时间:2013-04-25 07:01:53

标签: php cakephp

我有这段代码:

$userObj = ClassRegistry::init('User');
$userObj->contain();
$conditions = "User.studio_id = '".$studioID."' AND User.usergroup_id = 5";
$studioAdmin = $userObj->find($conditions); 

导致错误的是这一行:

$studioAdmin = $userObj->find($conditions); 

当我说错误时,它不会打印任何错误或任何错误警告,它只是停止它下面的代码,我注意到那个,因为当我尝试echo上面的代码时,它打印出来,但当我尝试echo下面的代码时,它不会打印任何内容,

这里有什么问题。对你的帮助表示感谢!谢谢! :)

2 个答案:

答案 0 :(得分:2)

在组件中加载模型的更好实践方法是通过控制器,并使用loadModel()

在您的组件中,设置initialize()

function initialize($controller, $settings) {
    $this->Controller =& $controller;
}

然后在组件函数中,使用loadModel加载模型

$this->Controller->loadModel('Modelname');
$this->Modelname->save($data);

以及查找条件

$users = $this->Modelname->find('all', array(
   'conditions' => array(
       'User.studio_id'    => $studioID,
       'User.usergroup_id' => 5
   )
));

答案 1 :(得分:0)

你应该这样做:

$studioAdmin = $userObj->find('all', array( 'conditions' => $conditions ) );

您是否启用了PHP错误消息?您是否检查了日志以查看具体错误是什么?

此外,根据蛋糕标准,最好以这种方式构建条件条款:

$conditions = array(
                "User.studio_id" => $studioID,
                "User.usergroup_id" => 5"
              );