yii-用户扩展,如何正确创建新关系?

时间:2013-05-06 16:33:42

标签: yii yii-extensions

大家好,感谢您阅读,我没有什么问题,我安装了yii用户扩展。 我创建了另一个与用户表关系的表。 Yii自动创建了与“用户”表的关系,但是当我尝试使用这种关系时,它会给我以下消息;

  

include(Users.php):无法打开流:没有这样的文件或目录

这可能是因为用户模型与其他模型不同,而是在模块/用户中..... 我怎样才能使它工作? 例如

 array(
            'header' => __('Title'),
            'name' => 'id_employer_contract',
            'value' => '$data->user->username',//user is the name of relationship

        ),

4 个答案:

答案 0 :(得分:0)

当尝试从User模块外部访问User.php模型时,该文件尚未导入。

如果查看UserModule.php文件的init()方法,您将看到User.php文件是通过user.models.*语句导入的。

从系统的其他部分导入此文件有几种不同的方法:

  • application.modules.user.models.*添加到main.php的导入部分。这将使其在您的应用程序中随处可用
  • 在代码区域之前调用Yii::import('application.modules.user.models.*');,具体取决于User.php
  • 根据User.php,在代码区域前面调用Yii::app()->getModule('user');。这将调用User模块中的init()方法。

答案 1 :(得分:0)

查看"include(Users.php): failed"

您可以通过以下方式更改关系映射(由Gii自动生成):

'user' => array(self::BELONGS_TO, 'Users', 'user_id')

对此:

'user' => array(self::BELONGS_TO, 'User', 'user_id')

这应该可以解决问题。

答案 2 :(得分:0)

在Yii的另一个版本中,在创建关系时,相应的模型可能是YumUser而不是User,为我完成了这项工作: 'user' => array(self::BELONGS_TO, 'YumUser', 'user_id')

答案 3 :(得分:0)

您遇到的问题是用户的表名称被称为"用户"所以,当yii为模型生成解析它时,它会将用户模型解析为"用户"但yii-user模块扩展的模型为" UserModel"在名为User.php的文件中 这意味着在某种程度上,名为Users.php的文件不存在。

要解决此问题,只需将新模型中的关系更改为'user' => array(self::BELONGS_TO, 'User', 'User'),而不是'user' => array(self::BELONGS_TO, 'Users', 'User'),