在默认模型中加载另一个模型

时间:2014-03-27 10:00:32

标签: php cakephp cakephp-2.3

我正在尝试在一个默认模型中加载另一个模型。我的数据库中有一个配置文件表。但得到错误。

用户模型

App::uses('AuthComponent', 'Controller/Component');   
    class User extends AppModel {

          public function getProfileData(){
                $this->loadModel('Profile');
                $profileData = $this->Profile->findById('8');
                print_r($profileData);
            }
    }

错误:

 Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'loadModel' at line 1

SQL Query: loadModel 

3 个答案:

答案 0 :(得分:2)

loadmodel适用于控制器。

要在当前模型中使用新模型,请尝试:

App::uses('Profile', 'Model');
$Profile = new Profile();
$profileData = $Profile->findById('8');

答案 1 :(得分:1)

还有另一种方式。

$profile= ClassRegistry::init('Profile');
$profileData = $profile->findById(8);

答案 2 :(得分:0)

也许Profile模型已经与User模型相关联。 如果是这种情况,您可以使用以下方式访问它:

$this->User->Profile->findById(8);

无需加载任何内容。