【问题标题】:Yii2 dektrium user new actionYii2 dektrium 用户新动作
【发布时间】:2016-06-22 02:25:43
【问题描述】:

我在高级模板中使用 dektrium yii2-user。我想在 SettingsController 中添加新操作。

我做了什么:

覆盖设置控制器。创建 /frontend/user/SettingsController.php

namespace frontend\controllers\user;

use dektrium\user\controllers\SettingsController as BaseSettingsController;

class SettingsController extends BaseSettingsController
{

    public function actionMyview()
    {
        $this->render('myview');
    }
}

创建新视图 /frontend/views/user/settings/view/myview.php 并在组件部分更改了/common/main.php

    'view' => [
        'theme' => [
            'pathMap' => [
                '@dektrium/user/views' => '@frontend/views/user'
            ],
        ],
    ],

但它不起作用。当我转到 mysite.com/user/settings/myview 时,我看到没有错误的空白页面。 另外我不知道如何覆盖行为,所以我直接在 /vendor/dektrium/yii2-user/controllers/SettingsController.php 中添加了 myview 的访问规则

我怎样才能正确地做到这一点? 谢谢。

【问题讨论】:

    标签: yii2 yii2-advanced-app yii2-user


    【解决方案1】:

    添加这个:

    'user' => [
        'class' => 'dektrium\user\Module',
        //...
        'controllerMap' => [
            'settings' => [
                'class' => 'frontend\controllers\user\SettingsController',
                'layout' => '@app/views/layouts/main'
            ]
        ]
    ]
    

    我明白了!你忘了这是return

    public function actionMyview()
    {
        return $this->render('myview');
    }
    

    【讨论】:

    • 显示您请求的网址
    • 我设置了布局,它也不起作用。我的网址 mysite.com/user/settings/myview
    • 你的调试在 frontend/web/index.php 中设置为 true 吗?
    • 我在基本模板 Yii2 上测试
    • 调试为真,没有错误显示,日志文件也没有错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多