我们有一位外包工程师致力于快速删除我们数据库中列出的项目。他说代码很困难,因为缺少“控制器”。是否有一个预加载的控制器,用于像 cake 中那样的每个功能,或者他期待一个控制器用于我们还没有的功能,这很奇怪。
3 回答
有一个通用的 AppController,但实际上它更像是一个抽象类(您通常从中派生其他控制器)。
他期待一个控制器一点也不奇怪——毕竟,除非你有控制点,否则你将无法调用模型中的方法(我猜你正在这样做删除)打电话给他们。在这种情况下,控制点是控制器。
所以你可以创建一个控制器。这是一个开始的模板:
class SomeController extends AppController {
function delete() {
$this->Some->delete();
}
}
然后访问 /somes/delete(记住,URL 通常是 /controller/action)。
现在,他可能正在谈论 Cake Bake CLI 应用程序。这将获取您的数据库表,并引导您完成应用程序的初始基本设置。通常,它为 CRUD 操作创建一个基本骨架。
无论哪种方式,您都需要创建一个控制器(手动或通过 Bake)。
当您使用 Cake bake 功能时,它会为您创建所有控制器。当您不使用它时,您需要手动创建它们。一开始就制作所有的控制器是没有意义的,当你真正要编写它们时才制作它们会很好。
如果您在访问页面 ( http://www.youraddress.com/Newfeature ) 时在 CakePHP 中没有控制器,您会收到缺少控制器的错误:
错误:找不到 NewfeatureController。
错误:在以下文件中创建类 NewfeatureController:app\controllers\newfeature_controller.php
没有控制器,您无法从数据库中获取或删除数据 -了解 Model-View-Controller。CakePHP 中的静态页面不需要控制器。