0

高度なテンプレートで dektrium yii2-user を使用しています。SettingsController に新しいアクションを追加したい。

私がやったこと:

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 のアクセス ルールを直接追加しました。

どうすればそれを正しく行うことができますか?ありがとう。

4

1 に答える 1

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');
}
于 2016-06-21T08:17:38.383 に答える