我有一些不在默认蛋糕php格式的型号

用户(ID,名称....)

1 Harsha ...
2 John ....

菜肴(ID,名称,价格...)

1 "Cheese Pizza" 6
2 "Zinger Burger" 3

餐厅(ID,名字,.....)

1 "KFC" ...
2 "Pizza Hut" ...

模块(ID,名称)值(用户,菜肴,餐馆)

1 "Users"
2 "Dishes"
3 "Restaurant"

项目(id,module_id,item_id)

1 1 1 (refers to User Harsha)

2 3 2 (refers to Pizza hut)

3 2 2 (refers to Zinger Burger)

4 1 2 (refers to User John)

item_id涉及用户,菜肴或休息的ID,具体取决于module_id


评论(id,parent_id,评论,时间,item_id,commenter_id)

1 0 "Best Burger in the world" "time" 3 1 (refers to Harsha reviewing Zinger Burger)

2 1 "Yes i love Zingers tooo" time 3 2 ( refers to John replying to Harsha's Review)

我对如何在cakephp中建立关系有些烦恼

有帮助吗?

解决方案

在此页面的书中: http://book.cakephp.org/view/1039/associations-linking-models-together 您会找到可以在关系上设置的可能键的指南,例如

外国人:在另一个模型中找到的外键的名称。如果您需要定义多个hasone关系,这尤其方便。该键的默认值是当前模型的突出的,单数的名称,带有“ _id”后缀。在上面的示例中,它将默认为“ user_id”。

假设评论和项目是他们的关联中的孩子,对于关系的两端,您将外国关键设置为“ item_id”。

就像是:

dishes:
class Dish extends AppModel {
    var $name = 'Dish'; 
    var $hasMany = array(
        'Item' => array(
            'className'     => 'Item',
            'foreignKey'    => 'item_id',
            ...
items:
class Item extends AppModel {
    var $name = 'Item'; 
    var $belongsTo = array(
        'Dish' => array(
            'className'     => 'Dish',
            'foreignKey'    => 'item_id',
            ...
            ),

        'Restaurant' => array(
            'className'     => 'Restaurant',
            'foreignKey'    => 'item_id',
            ...

很难更精确,但是您尚未提供任何数据模型。要通过模块处理模型的选择,您需要在某个地方的模型上编写一些代码,其中一个取决于您如何访问数据。

但是,在我看来,这是重组数据库的好时机!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top