0

我目前设置了一个 MySQL 服务器数据库,其中有一些简单的表来跟踪订单,例如 tblOrders、tblUsers、tblProducts。

虽然我现在有一个网站可以正常使用它,但我想设置 CakePHP 作为服务器端框架来处理与数据库的交互,而不是在我的 PHP 页面中使用手写查询。

有没有一种简单的方法可以用我现有的数据库/表来设置 CakePHP?

如果我理解正确,我将有一个扩展控制器的主 MyApplication 类,以及每个扩展 MyApplication 类的订单、用户、产品(...其他表)类。

看起来 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'      => ''
    );
}
4

1 回答 1

3

如果你想为你创建模型、控制器和视图代码,你正在寻找烘焙

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

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

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

如果 Cake 是唯一会触及这个数据库的东西,我建议按照它所期望的约定重命名表和列。

于 2012-11-13T22:16:21.357 回答