我有一些不属于默认cakephp格式的模型
用户(ID,名称....)
1 Harsha ...
2 John ....
菜肴(身份证,姓名,价格......)
1 "Cheese Pizza" 6
2 "Zinger Burger" 3
餐馆(id,name,.....)
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指的是用户,菜肴或休止符号,具体取决于module_id
评论(id,parent_id,review,time,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中建立关系感到有点麻烦
答案 0 :(得分:1)
在本页的书中:http://book.cakephp.org/view/1039/Associations-Linking-Models-Together您可以找到关于您可以为关系设置的可能键的指南,例如
foreignKey:外国人的名字 在其他模型中找到的关键。这是 如果你需要定义,特别方便 多个hasOne关系。该 此键的默认值为 强调,单数名称 当前模型,后缀为'_id'。在 上面的例子它将默认为 'user_id说明'。
假设评论和项目是其关联中的子项,对于关系的两端,您将foreignKey设置为“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',
...
很难更准确,但您没有提供任何数据模型。要通过模块处理模型选择,您需要在某个模型上编写一些代码,其中一个代码取决于您访问数据的方式。
然而,在我看来,这是重组数据库的好时机!