覆盖控制器时未定义的索引

Undefined index while overriding controller

所以在配置文件 table 中,我创建了一个名为 'rayon_id' 的新字段,这是我的新 table Rayon 的 'id'

的 FK

两个模型都对关系进行了编码。

Rayon.php

/**
 * @return \yii\db\ActiveQuery
 */
public function getProfiles()
{
    return $this->hasMany(Profile::className(), ['rayon_id' => 'id']);
}

and In Profile.php(覆盖模型)

namespace app\models;

use dektrium\user\models\Profile as BaseProfile;

class Profile extends BaseProfile
{
    public function getRayon()
    {
        return $this->hasOne($this->module->modelMap['Rayon'], ['id' => 'rayon_id']);
    }

这是我覆盖的控制器AdminController.php

namespace app\controllers\user;

use dektrium\user\controllers\AdminController as BaseAdminController;
use Yii;
use yii\helpers\Url;
use backend\models\Rayon;

class AdminController extends BaseAdminController
{
    public function actionUpdateProfile($id)
    {
        Url::remember('', 'actions-redirect');
        $user    = $this->findModel($id);
        $profile = $user->profile;
        $rayon = $profile->rayon;

添加时出错$rayon = $profile->rayon;

为什么我得到未定义的索引?

找到修复错误的答案。

我使用 Rayon 模型,并编辑 getRayon 函数

namespace app\models;

use backend\models\Rayon;
use dektrium\user\models\Profile as BaseProfile;

class Profile extends BaseProfile
{
    public function getRayon()
    {
        return $this->hasOne(Rayon::className(), ['id' => 'rayon_id']);
        //return $this->hasOne($this->module->modelMap['Rayon'], ['id' => 'rayon_id']);
}

谢谢。