前段时间我用基于 Dektrium 的登录表单开发了一个 Yii2 应用程序。由于它已被弃用,我搬到了 2Amigos 的 yii2-usuario,但现在我自己的
login.php
视图根本没有渲染,被 yii2-usuario 自动替换了。
根据 yii2-usuario,我应该使用以下内容覆盖此登录视图:
'components' => [
'view' => [
'theme' => [
'pathMap' => [
'@Da/User/resources/views' => '@app/views/user'
]
]
]
]
据说这应该有利于任何自己制作的视图,只有在没有找到自己制作的视图时才用 yii2-usuario 的视图替换它们,但在我的例子中 Yii2 抛出以下内容:
yii\base\ViewNotFoundException: The view file does not exist: /myapp/vendor/2amigos/yii2-usuario/src/User/resources/views/_alert.php in /myapp/vendor/yiisoft/yii2/base/View.php:233
Stack trace:
#0 /myapp/vendor/yiisoft/yii2/base/View.php(156): yii\base\View->renderFile()
#1 /myapp/views/user/security/login.php(27): yii\base\View->render()
#2 /myapp/vendor/yiisoft/yii2/base/View.php(347): require('/usr/local/shar...')
#3 /myapp/vendor/yiisoft/yii2/base/View.php(257): yii\base\View->renderPhpFile()
#4 /myapp/vendor/yiisoft/yii2/base/View.php(156): yii\base\View->renderFile()
#5 /myapp/vendor/yiisoft/yii2/base/Controller.php(407): yii\base\View->render()
#6 /myapp/vendor/2amigos/yii2-usuario/src/User/Controller/SecurityController.php(172): yii\base\Controller->render()
#7 [internal function]: Da\User\Controller\SecurityController->actionLogin()
#8 /myapp/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()
#9 /myapp/vendor/yiisoft/yii2/base/Controller.php(178): yii\base\InlineAction->runWithParams()
#10 /myapp/vendor/yiisoft/yii2/base/Module.php(552): yii\base\Controller->runAction()
#11 /myapp/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction()
#12 /myapp/vendor/yiisoft/yii2/base/Application.php(384): yii\web\Application->handleRequest()
#13 /myapp/web/index.php(12): yii\base\Application->run()
#14 {main}
有什么想法吗?
找到一个解决方法复制
resources/views/shared/_alert.php
一个级别,但我觉得这不应该是这样的。