我目前设置了一个MySQL服务器数据库,它有一些简单的表来跟踪订单,例如tblOrders,tblUsers,tblProducts。
虽然我现在有一个网站正常使用它,但我想设置CakePHP作为服务器端框架来处理与数据库的交互,而不是在PHP页面中使用手写查询。
有没有一种简单的方法可以使用现有的数据库/表格设置CakePHP?
如果我理解正确的话,我将有一个扩展控制器的主MyApplication类,以及每个扩展MyApplication类的Order,User,Product,(...其他表)类。
看起来REST指南使用名为Router::mapResources('recipes');
的配置文件中的方法。这会使用用于REST的默认方法为每个表创建控制器吗?
即,在/app/config/routes.php配置文件中:
// /app/config/routes.php
Router::mapResources('tblOrders');
Router::mapResources('tblUsers');
Router::mapResources('tblProducts');
// /app/config/database.php
<?php
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/myStoreDB',
'persistent' => false,
'host' => 'localhost',
'login' => 'admin_user',
'password' => 'c4k3roxx!',
'database' => 'main_db',
'prefix' => ''
);
}
答案 0 :(得分:3)
如果您想为自己创建模型,控制器和查看代码,那么您正在寻找baking。
Cake希望您的数据库表遵循naming convention。我不确定烘烤会怎样,因为你的桌子不符合这个惯例。您可能需要手动创建模型类,并在每个类上指定useTable
属性。例如:
<?php
class Order extends AppModel {
public $useTable = 'tblOrders';
}
一旦完成,我希望控制器和视图的烘焙应该正常工作。请注意,对于mapResources
,您仍需要控制器代码。该函数只生成路径。
如果Cake是唯一会触及此数据库的东西,我建议根据预期的约定重命名表和列。