2012-11-13 81 views
0

我有一個MySQL服務器數據庫目前安裝有幾個簡單的表來跟蹤訂單,如tblOrders,tblUsers,tblProducts。安裝CakePHP與現有的數據庫

儘管我現在有一個網站可以正常工作,但我希望將CakePHP設置爲處理與數據庫交互的服務器端框架,而不是在我的PHP頁面中使用手寫查詢。

有沒有一種簡單的方法來設置CakePHP與我現有的數據庫/表?

如果我理解正確,我將有一個主擴展控制器的MyApplication類,以及每個擴展MyApplication類的Order,User,Product(... other tables)類。

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

回答

3

如果你想模型,控制器和視圖代碼爲您創建,你要找的baking

Cake期望您的數據庫表遵循naming convention。我不確定如何烘烤,因爲你的表不符合這個慣例。您可能需要手動創建模型類並在每個類上指定useTable屬性。例如:

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

一旦做到這一點,我希望控制器和視圖的烘焙應該工作正常。請注意,使用mapResources您仍然需要控制器代碼。該功能只是生成路線。

如果Cake是唯一會觸及這個數據庫的東西,我建議重新命名錶和列以符合它所期望的約定。