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

时间:2015-01-12 06:13:09

标签: php yii2 yii2-advanced-app

我是yii框架的新手。在yii版本: 2.0.1 我创建了一个模块,我尝试使用 gii functionality 生成CRUD模型。模型类,控制器类和视图路径,当我点击生成gii显示所有文件已成功创建。
但当我试图查看时,下面的消息已显示给我,

视图文件不存在:

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

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

这是我对gii的输入,

模特课程:

backend\modules\settings\models\Companies

搜索模型类:

backend\modules\settings\models\CompaniesSearch

控制器类:

backend\modules\settings\controllers\CompaniesController

查看路径:

backend\modules\settings\views\companies

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

  

使用模板生成代码" C:\ xampp \ htdocs \ advanced \ vendor \ yiisoft \ yii2-gii \ generators \ crud / default" ...

     

生成的modules \ settings \ controllers \ CompaniesController.php

     

生成的modules \ settings \ models \ CompaniesSearch.php

     

生成后端\ modules \ settings \ views \ companies \ _form.php

     

生成后端\ modules \ settings \ views \ companies \ _search.php

     

生成后端\ modules \ settings \ views \ companies \ create.php

     

生成后端\ modules \ settings \ views \ companies \ index.php

     

生成后端\ modules \ settings \ views \ companies \ update.php

     

生成后端\ modules \ settings \ views \ companies \ view.php

     

完成!

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

提前致谢。

9 个答案:

答案 0 :(得分:25)

我通过改变

解决了类似的问题
backend\modules\settings\views\companies

进入

@backend/modules/settings/views/companies

希望将来可以帮助某人

答案 1 :(得分:2)

您错过了View Path中的最后一个文件夹和别名。它应该是@backend\modules\settings\views \ companies

正如您在创建日志中看到的那样,生成的文件位于错误的位置(root views文件夹),这就是抛出错误的原因。

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

将其放入 VIEW PATH

  

@后端/模块/设置/视图/公司

已经完成了!

答案 5 :(得分:0)

我尝试过绝对路径i,e

  

C:/ XAMPP / htdocs中/先进/后端/模块/设置/视图/公司

它适用于绝对路径。

答案 6 :(得分:0)

我尝试通过输入: /应用/ XAMPP / htdocs中/先进/后端/模块/设置/视图/公司

我希望你能做得好。

答案 7 :(得分:0)

我正在使用高级主题

以下是我的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()

答案 8 :(得分:0)

以前,当我想获得绝对路径时将模型放到错误的目录中(因为它似乎更常用,所以要对其进行绝对寻址)-

app/backend/modules/settings

请注意开头的“ app”(/ app是Yii入门工具包中的主目录),我认为这会避免相对路径,但不能在该目录中,也不能使用@mail标记,但是相反,它确实相反-它以绝对长度相对地附加到/ document根目录,基本上是重复的,

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

因此,它可以消除模型位置,,或者也可以错误地控制控制器。

与模型相比,对于视图而言也很奇怪,它必须用@相对参考符号注释(上面不允许在用于控制器或模型时使用)以不同的方式放在上部。写作)

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