Yii2 "Page not found" 使用 CRUD 生成器时
Yii2 "Page not found" when using CRUD generator
我已成功使用 Yii2 模型和 CRUD 生成器为我的网络应用程序获取一些框架代码文件。特别是,CRUD 生成器声称已成功将其视图文件创建到:
<yii_root>/basic/views/<my_view_name>/*.php
我通过将 "View Path" 字段留空得到的。
但是,浏览到:
https://<my_site_FQDN>/basic/web/index.php?r=<my_view_name>/index
出现 "Not Found (#404)" 错误,我无法在 Yii2 调试日志中找到任何有用的信息。
欢迎就此事提出任何想法。
安东尼奥
<my_view_name>
这是一种糟糕的看待方式。了解 MVC。
您正在创建控制器,路由是到控制器而不是视图。停止查看视图是否存在...查看控制器是否存在。你从不与视图交互,你总是与控制器交互。那么,你的控制器在吗?你确定你已经创建了吗?
还有控制器名称是什么?如果您有类似 ProductCategory 的内容,那么正确的路线是
https://<my_site_FQDN>/basic/web/index.php?r=product-category/index
而不是
https://<my_site_FQDN>/basic/web/index.php?r=ProductCategory/index
编辑
好的,我明白你的问题了,停止将文件夹放在其他文件夹下等等。您错误地创建了 CRUD。您的控制器必须直接在控制器下,而不是在 controllers/bibliografia 下,模型也是如此。删除文件并使用 CRUD 重新开始,因为您的命名空间可能也是错误的。
我发现使用 Yii2(高级模板)生成的控制器具有:
namespace app\controllers;
我不得不将其更改为:
namespace frontend\controllers;
很简单,更改命名空间,创建CRUD时请小心..
更改命名空间 app\controllers;到命名空间 backend\controllers;
在我的例子中,Yii2 始终使用 gii CRUD 编写以下内容 auto-generator。
namespace app\Controllers;
注意控制器的大写 'C'。这会导致 404 错误。
应该是:
namespace app\controllers
这修复了我的 404 错误。
我通过将控制器名称的第一个字母大写来修复它。
控制器名称应以大写字母开头。
如果使用小写字母,Controller 生成器不会抛出任何错误,但您会在浏览器中收到未找到 (404) 错误。
这引发了一个错误:
app\controllers\testController
这有效:
app\controllers\TestController
我已成功使用 Yii2 模型和 CRUD 生成器为我的网络应用程序获取一些框架代码文件。特别是,CRUD 生成器声称已成功将其视图文件创建到:
<yii_root>/basic/views/<my_view_name>/*.php
我通过将 "View Path" 字段留空得到的。
但是,浏览到:
https://<my_site_FQDN>/basic/web/index.php?r=<my_view_name>/index
出现 "Not Found (#404)" 错误,我无法在 Yii2 调试日志中找到任何有用的信息。
欢迎就此事提出任何想法。
安东尼奥
<my_view_name>
这是一种糟糕的看待方式。了解 MVC。
您正在创建控制器,路由是到控制器而不是视图。停止查看视图是否存在...查看控制器是否存在。你从不与视图交互,你总是与控制器交互。那么,你的控制器在吗?你确定你已经创建了吗?
还有控制器名称是什么?如果您有类似 ProductCategory 的内容,那么正确的路线是
https://<my_site_FQDN>/basic/web/index.php?r=product-category/index
而不是
https://<my_site_FQDN>/basic/web/index.php?r=ProductCategory/index
编辑
好的,我明白你的问题了,停止将文件夹放在其他文件夹下等等。您错误地创建了 CRUD。您的控制器必须直接在控制器下,而不是在 controllers/bibliografia 下,模型也是如此。删除文件并使用 CRUD 重新开始,因为您的命名空间可能也是错误的。
我发现使用 Yii2(高级模板)生成的控制器具有:
namespace app\controllers;
我不得不将其更改为:
namespace frontend\controllers;
很简单,更改命名空间,创建CRUD时请小心.. 更改命名空间 app\controllers;到命名空间 backend\controllers;
在我的例子中,Yii2 始终使用 gii CRUD 编写以下内容 auto-generator。
namespace app\Controllers;
注意控制器的大写 'C'。这会导致 404 错误。 应该是:
namespace app\controllers
这修复了我的 404 错误。
我通过将控制器名称的第一个字母大写来修复它。 控制器名称应以大写字母开头。 如果使用小写字母,Controller 生成器不会抛出任何错误,但您会在浏览器中收到未找到 (404) 错误。
这引发了一个错误:
app\controllers\testController
这有效:
app\controllers\TestController