yii 2 : 覆盖用户模型 [英] yii 2 : override user model

查看:22
本文介绍了yii 2 : 覆盖用户模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 yii2 中正确覆盖用户模型?

How to override user model properly in yii2?

例如,我想覆盖 commonmodelsUser.php

For example, I want to override commonmodelsUser.php

我使用以下代码创建了 frontendmodelsUser.php :

I created frontendmodelsUser.php with the following code :

  namespace frontendmodels;


  use commonmodelsUser as BaseUser;

  class User extends BaseUser
  {

   public static function tableName()
  {
    return '{{%accounts}}';
  }
  ...

在main.php中,当我添加

In main.php, when I add

     'user'=>array(
        'class' => 'frontendmodelsUser',
    ),

出现错误设置未知属性:frontendmodelsUser::identityClass

I get error Setting unknown property: frontendmodelsUser::identityClass

推荐答案

您可以设置两件事:1)

There are 2 things you can set up: 1)

'user' => [
    'identityClass' => 'commonmodelsUser',
],

和 2

'user' => [
    'class' => 'frontendcomponentsUser',
],

您正在转换它们.'identityClass' 是你的模型,'class' 是 Yii 的 User 组件.通过设置 identityClass 你告诉 Yii 用户组件应该使用 frontendmodelsUser 它的 identityClass 属性.

You are switching them around. 'identityClass' is your model, 'class' is the the User component for Yii. By setting identityClass you are telling Yii that the User Component should use frontendmodelsUser it's identityClass property.

这是用户组件 https://github.com/yiisoft/yii2-framework/blob/master/web/User.php

以前的 Yii2 版本实际上已经放入了文件 frontendcomponentsUser.php(即扩展 yiiwebUser).我明白为什么现在更混乱了.

The previous versions of Yii2 had actually the file frontendcomponentsUser.php already put in (that was extending yiiwebUser). I can see why it is more confusing now.

您遇到的新错误是什么?

What is the new error you are getting?

这篇关于yii 2 : 覆盖用户模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆