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