Yii2仅为一个视图文件更改主题

Yii2仅为一个视图文件更改主题,yii2,theming,Yii2,Theming,我有一个Yii2应用程序,它使用webvimark/user management模块处理用户。我创建了名为UserProfile的附加模型,它添加了一些附加功能和字段。对于那些感兴趣的人,我遵循以下指南: 我做了很多事情,创建了一个自定义的注册表单来处理新的配置文件字段。我唯一的问题是如何替换模块中包含的原始表单而不修改它。在这里,webvimark建议使用主题化: 但是,如何仅对包含表单的一个文件进行主题化?我不想改变剩下的和我能找到的所有主题化的例子来覆盖整个目录。有什么建议吗?经过一

我有一个Yii2应用程序,它使用
webvimark/user management
模块处理用户。我创建了名为
UserProfile
的附加模型,它添加了一些附加功能和字段。对于那些感兴趣的人,我遵循以下指南:

我做了很多事情,创建了一个自定义的注册表单来处理新的配置文件字段。我唯一的问题是如何替换模块中包含的原始表单而不修改它。在这里,webvimark建议使用主题化:


但是,如何仅对包含表单的一个文件进行主题化?我不想改变剩下的和我能找到的所有主题化的例子来覆盖整个目录。有什么建议吗?

经过一番讨论,答案很简单。您必须对整个目录使用主题,因为显然没有其他选项。然而,我发现了这一点,即一旦您使用主题化,并且您的控制器尝试加载视图,那么它将首先在您创建的新主题目录下进行搜索,但如果在那里找不到,则返回原始目录

换句话说,覆盖整个目录,但是如果在新目录中只提供一个视图,其余视图将保持不变,这非常漂亮

我正在发布我在web配置文件中写下的代码,以防有人遇到路径问题:

'components' => [
    'view' => [
        'theme' => [
            'pathMap' => [
                '@app/vendor/webvimark/module-user-management/views/auth' => '@app/views/user-profile'
            ],
        ],
    ],
],

经过一番激烈的争论,答案很简单。您必须对整个目录使用主题,因为显然没有其他选项。然而,我发现了这一点,即一旦您使用主题化,并且您的控制器尝试加载视图,那么它将首先在您创建的新主题目录下进行搜索,但如果在那里找不到,则返回原始目录

换句话说,覆盖整个目录,但是如果在新目录中只提供一个视图,其余视图将保持不变,这非常漂亮

我正在发布我在web配置文件中写下的代码,以防有人遇到路径问题:

'components' => [
    'view' => [
        'theme' => [
            'pathMap' => [
                '@app/vendor/webvimark/module-user-management/views/auth' => '@app/views/user-profile'
            ],
        ],
    ],
],