Yii2使用参数和prettyUrl重定向到另一个动作

时间:2015-01-28 16:49:53

标签: php yii2

我对创建功能有这个简单的操作。

public function actionCreate()
{
    $model = new Horse();
    $model->attributes = \Yii::$app->request->post('Horse');

    if ((\Yii::$app->request->post()) && ($model->validate())) {
        $model->save(false);
        $this->redirect(
            [
                'view',
                'id' => $model->id
            ]
        );
    }

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

common / config / main.php 下,我定义了:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
],

但是,当调用$this->redirect时,它会打开URL而不考虑上述配置。 所以,这就是我所看到的:

http://traditionalbox.back.dev/horse/view?id=11

而不是:

http://traditionalbox.back.dev/horse/view/11

出了什么问题?

1 个答案:

答案 0 :(得分:1)

您需要在网址管理器上设置规则。

类似的东西:

'rules' => array(
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        ),

据我了解, prettyUrl 只是使用路径格式。

ezekielnoob 分享的积分。