2

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

包括(Users.php):未能打开流:没有这样的文件或目录

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

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

        ),
4

4 回答 4

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 在代码区域之前调用
  • Yii::app()->getModule('user');根据 User.php 在代码区域之前调用。这将调用 User 模块中的 init() 方法。
于 2013-05-06T18:37:58.963 回答
0

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

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

于 2014-08-27T08:48:43.580 回答
0

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

您可以从此更改关系映射(由 Gii 自动生成):

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

对此:

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

这应该够了吧。

于 2013-12-01T23:59:21.287 回答
0

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

于 2014-03-09T11:31:52.333 回答