0

我是一个学习Yii2框架的新手(安装了Yii2的高级版)。目前,我拥有带有顶级菜单(主页/关于/联系方式等)的“标准”前端。我想在顶部菜单的附加部分中添加(例如显示高级联系表的“高级联系人”。

所以,我做了下一个:

在 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) 复制为 advancedcontact.php。

但是在按下链接后,我收到了消息

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

我应该遵循什么来纠正这个错误?

4

1 回答 1

1

您是否也复制了控制器中的功能?在 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

于 2015-01-22T03:40:19.200 回答