Yii2 - 如何路由页面

Yii2 - how to route for the page

本人是学习Yii2框架的新手(装过Yii2进阶版)。 目前我有 "standart" 带有顶部菜单的前端(主页/关于/联系等)。我想在顶部菜单中添加附加部分(例如 "Advanced Contact" 显示高级联系表。

所以,我做了下一个:

已添加到 main.php 附加菜单部分

$menuItems = [
                ['label' => 'Home', 'url' => ['/site/index']],
                ['label' => 'About', 'url' => ['/site/about']],
                ['label' => 'Contact', 'url' => ['/site/contact']],
                ['label' => 'Advanced Contact', 'url' => ['/site/advancedcontact']]
            ];

已将 ContactPage 视图 (contact.php) 作为高级contact.php 复制到同一文件夹中。

但是在按下 link 之后我收到了消息

未找到 (#404) 无法解决请求:site/advancedcontact

我应该如何纠正这个错误?

你是不是也复制了controller里面的函数?在 frontend/controllers/SiteController.php 你应该有这样的东西。

/**
     * Advanced Contact Form action
     *
     * Renders the advanced contact page and processes any form submissions.
     *
     * @return string Rendering result
     */
    public function actionAdvancedcontact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
                Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
            } else {
                Yii::$app->session->setFlash('error', 'There was an error sending email.');
            }
            return $this->refresh();
        } else {
            return $this->render('advancedcontact', [
                'model' => $model,
            ]);
        }
    }

请注意,如果您将函数重命名为 actionAdvancedContact,那么您的路线需要 /site/advanced-contact