缺少必需参数:Yii2中的id actionView

时间:2017-03-15 13:00:52

标签: php yii2

我做了标签 - > Profil并将他的网址设置为/ bloggers / view但是当我登录并尝试查看用户profil时它会向我显示错误。我在网络上搜索但没有意识到如何解决问题!你们能帮助我吗?为什么我的actionView不会记录已登录用户的$ id(在我的情况下是Blogger)?

  public function actionView($id)
    {
        return $this->render('view', [
            'model' => $this->findModel($id),
        ]);
    }

我正在通过此操作注册用户:

public function actionRegister()
    {
        $model = new RegisterForm();
        $user = new Blogger();

        if(isset($_POST['register-button']))
        {
            $model->attributes = $_POST['RegisterForm'];

            if($model->validate())
            {
                $user->username = $model->username;
                $user->email = $model->email;

                $pass_hash = md5($model->password);

                $user->password = $pass_hash;
                $user->save();

                \Yii::$app->user->login($user);
                $this->redirect('index');

            }
        }

        return $this->render('register',[
            'model' => $model,
        ]);
    }

我仍然很难新手和mayba我在代码中做了愚蠢的事情,但请原谅我!谢谢你的推荐!

1 个答案:

答案 0 :(得分:0)

actionView将根据Yii格式从url获取id参数。

例如: - domain.com/xxx?id=5或domain.com/xxx/id/6

如果要传递已记录的用户ID,则必须修改actionView,如

public function actionView()
{
    $id = \Yii::$app->user->identity->id; // id should match with user table column
    return $this->render('view', [
        'model' => $this->findModel($id),
    ]);
}