Yii 2 gii 在不同的目录中生成视图文件

Yii 2 gii is generating view files on different directory

我是 yii 框架的新手。在 yii 版本:2.0.1 我创建了一个模块,我在其中尝试使用 gii functionality.
放置模型 class、控制器 class 和查看路径后,当我点击生成 gii 时显示所有文件已成功创建。
但是当我尝试查看时,我看到了以下消息,

查看文件不存在:

C:\xampp\htdocs\advanced\backend\modules\settings\views\companies\index.php

我在web目录中发现视图文件不在我输入的路径中。因此错误。

这是我对 gii 的输入,

型号Class:

backend\modules\settings\models\Companies

搜索模型Class:

backend\modules\settings\models\CompaniesSearch

控制器Class:

backend\modules\settings\controllers\CompaniesController

查看路径:

backend\modules\settings\views\companies

当我点击生成时,我给出了以下消息:

Generating code using template "C:\xampp\htdocs\advanced\vendor\yiisoft\yii2-gii\generators\crud/default"...

generated modules\settings\controllers\CompaniesController.php

generated modules\settings\models\CompaniesSearch.php

generated backend\modules\settings\views\companies\_form.php

generated backend\modules\settings\views\companies\_search.php

generated backend\modules\settings\views\companies\create.php

generated backend\modules\settings\views\companies\index.php

generated backend\modules\settings\views\companies\update.php

generated backend\modules\settings\views\companies\view.php

done!

有没有人知道为什么会这样。

提前致谢。

您在 View Path 中遗漏了最后一个文件夹和别名。应该是 @backend\modules\settings\views\companies.

如您在创建日志中所见,生成的文件位于错误的位置(根 views 文件夹),这就是引发错误的原因。

我试过绝对路径 i,e

C:/xampp/htdocs/advanced/backend/modules/settings/views/companies

它适用于绝对路径。

我通过更改解决了类似的问题

backend\modules\settings\views\companies

进入

@backend/modules/settings/views/companies

希望对以后的人有所帮助

有同样的问题。解决了输入 @backend/modules/settings/views/companies 而不是 backend\modules\settings\views\companies。 请参阅斜线。

对于 CRUD 生成器中的视图路径,请输入绝对路径或完整路径。例如

/home/developer/workspace/advanced/backend/views/<your view folder> 

我通过输入以下内容尝试了此方法: /Applications/XAMPP/htdocs/advanced/backend/modules/settings/views/companies

希望你能做好。

我使用的是高级主题

这是我的 Gii 设置,以防对任何人有帮助

module generator
----------------
module class:       backend\modules\posts\Module
module id:          posts

model generator
---------------
table name:         posts
model class:        Posts
namespace:          backend\modules\posts\models
Enable I18n:        checked. category: app

CRUD generator
--------------
Model class:        backend\modules\posts\models\Posts
Search model class: backend\modules\posts\models\PostsSearch
Controller class:   backend\modules\posts\controllers\PostsController
View path:          @backend/modules/posts/views/posts
Enable I18n:        checked. category: app
Enable pjax:        checked

If you are using some non-default user management (like amnah module), 
you need to change Users::className() in the models\Posts.php  to
\amnah\yii2\user\models\User::className()

将其放入 VIEW PATH

@backend/modules/settings/views/companies

大功告成!

以前我在想要实现绝对路径时将模型放入错误的目录(绝对解决它,因为它似乎更经常起作用)-

app/backend/modules/settings

注意开头的 'app'(/app 是 Yii 初学者工具包中的主目录),我认为它可以避免相对路径,但不能在那里,也不能有 @mail 符号,但恰恰相反, 它做了相反的事情 - 它将它的绝对长度相对附加到 /document 根目录,基本上复制了它,

"app/myproject.com/app/backend/modules/settings"

所以它从模型位置展开,Gii 投诉的原因 关于不正确的路径或者控制器也以不正确的方式放置。

对于与模型对比的视图来说,同样奇怪的是,它必须用 @ 相对参考符号注释以不同的方式放置上面提到的(不允许在控制器或模型中使用)写作时间)

@backend/modules/settings/views/companies,否则将目录树附加到文档根目录中,再次连接-后端的web目录backend/web (backend/modules/settings/views/companies)