Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii2和名为user_类型的表与用户表的用户模型的关系问题_Yii2_Php_Mysql_Model_Relationship - Fatal编程技术网

Yii2和名为user_类型的表与用户表的用户模型的关系问题

Yii2和名为user_类型的表与用户表的用户模型的关系问题,yii2,php,mysql,model,relationship,Yii2,Php,Mysql,Model,Relationship,我有一个user表和一个user高级应用程序模型。User与其表名为User\u type的UserType模型有一个关系,也与其表名为Status的Status模型有一个关系。状态和用户类型这两个模型与用户模型有很多关系 简而言之,问题是:在使用DetailViewwidget的视图中,我发现了这个问题 <?= DetailView::widget([ 'model' => $model, 'attributes' => [

我有一个
user
表和一个
user
高级应用程序模型。
User
与其表名为
User\u type
UserType
模型有一个关系,也与其表名为
Status
Status
模型有一个关系。
状态
用户类型
这两个模型与
用户
模型有很多关系

简而言之,问题是:在使用
DetailView
widget的视图中,我发现了这个问题

<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            ['attribute' => 'profileLink', 'format' => 'raw'],
            'id',            
            'email:email',
            'statusName', //This works Fine
            'userTypeName', // This DOES NOT Work
            'roleName',
            'created_at',
            'updated_at',
        ],
    ]) ?> 
此外,我对关系的定义如下:

public function getStatus()
    {
        return $this->hasOne(Status::className(), ['id' => 'status_id']);
    }

public function getUserType()
    {
        return $this->hasOne(UserType::className(), ['id' => 'user_type_id']);
    }
public function getStatusName()
    {
        return $this->status ? $this->status->status_name : '- no status -';
    }

public function getUserTypeName()
    {
        return $this->userType ? $this->UserType->user_type_name : '- no user type -';
    }
此外,我还为
statusName
userTypeName
定义了一个getter,如下所示:

public function getStatus()
    {
        return $this->hasOne(Status::className(), ['id' => 'status_id']);
    }

public function getUserType()
    {
        return $this->hasOne(UserType::className(), ['id' => 'user_type_id']);
    }
public function getStatusName()
    {
        return $this->status ? $this->status->status_name : '- no status -';
    }

public function getUserTypeName()
    {
        return $this->userType ? $this->UserType->user_type_name : '- no user type -';
    }

我无法发现pron=blem的根源,它使
statusName
工作,而
userTypeName
不工作。表、模型甚至方法是否存在任何错误的命名约定?!表名是否以另一个相关表的名称开头?i、 e
user
user\u type

您只需更正
getUserTypeName
,有一个输入错误:

public function getUserTypeName()
{
    return $this->userType ? $this->userType->user_type_name : '- no user type -';
}