-
26-09-2019 - |
题
我有一些不在默认蛋糕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',
...
很难更精确,但是您尚未提供任何数据模型。要通过模块处理模型的选择,您需要在某个地方的模型上编写一些代码,其中一个取决于您如何访问数据。
但是,在我看来,这是重组数据库的好时机!
不隶属于 StackOverflow