使用CRUD发生器时Yii2"找不到页面"

Ant*_*pez 1 crud scaffolding yii2

我已成功使用Yii2模型和CRUD生成器为我的Web应用程序获取一些框架代码文件.特别是,CRUD Generator声称已成功将其视图文件创建为:

<yii_root>/basic/views/<my_view_name>/*.php
Run Code Online (Sandbox Code Playgroud)

我把"视图路径"字段留空了.

但是,浏览到:

https://<my_site_FQDN>/basic/web/index.php?r=<my_view_name>/index
Run Code Online (Sandbox Code Playgroud)

吐出"未找到(#404)"错误,我无法在Yii2调试日志中找到任何有用的信息.

欢迎任何有关此事的想法.

安东尼奥

Mih*_* P. 6

<my_view_name>这是看待这个的可怕方式.阅读MVC.

您正在创建控制器,路由到控制器而不是视图.停止查看是否存在视图...查看控制器是否在那里.您永远不会与视图交互,您总是使用控制器.那么,你的控制器在那里吗?你确定你创造了吗?

还有什么是控制器名称?如果你有像ProductCategory这样的东西,那么正确的路线是

https://<my_site_FQDN>/basic/web/index.php?r=product-category/index
Run Code Online (Sandbox Code Playgroud)

并不是

https://<my_site_FQDN>/basic/web/index.php?r=ProductCategory/index 
Run Code Online (Sandbox Code Playgroud)

编辑
确定,我看到你的问题,停止将文件夹放在其他文件夹下等等.您创建了错误的CRUD.您的控制器必须直接位于不在控制器/书目下的控制器下,模型也是如此.删除文件并使用CRUD重新开始,因为您的命名空间可能也是错误的.


小智 6

在我的例子中,Yii2用gii CRUD自动生成器写下以下内容.

namespace app\Controllers;  
Run Code Online (Sandbox Code Playgroud)

请注意控制器的大写"C".这会导致404错误.它应该是 :

namespace app\controllers
Run Code Online (Sandbox Code Playgroud)

这修复了我的404错误.