使用现有数据库设置CakePHP

时间:2012-11-13 20:52:03

标签: php mysql cakephp

我目前设置了一个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'      => ''
    );
}

1 个答案:

答案 0 :(得分:3)

如果您想为自己创建模型,控制器和查看代码,那么您正在寻找baking

Cake希望您的数据库表遵循naming convention。我不确定烘烤会怎样,因为你的桌子不符合这个惯例。您可能需要手动创建模型类,并在每个类上指定useTable属性。例如:

<?php
class Order extends AppModel {
    public $useTable = 'tblOrders';
}

一旦完成,我希望控制器和视图的烘焙应该正常工作。请注意,对于mapResources,您仍需要控制器代码。该函数只生成路径。

如果Cake是唯一会触及此数据库的东西,我建议根据预期的约定重命名表和列。