2011-03-30 40 views
0

我的问题如下。我有以下型号:Recipe and Ingredient。我想在HasAndBelongsToMany关系中定义这两个关系,但并发症来自以下方面:我希望食谱能够拥有每种成分的数量。量和单位:Cakephp/SQL如何定义hasandbelongstomany关系的数量?

数量将由两个字段定义。因此,在抽象的层面这里是什么,我想看到一个例子/能够查询:

Apple Pie: 
    Ingredients: 
     1 pound of apples 
     2 tablespoons of sugar 

Orange Juice: 
    Ingredients: 
     1 cup of water 
     0.5 tablespoons of sugar 
     5 gobbles of googber 

而且我也希望能够查询的成分,并使其返回其配方是把它捆起来:

含糖

食谱:苹果馅饼和橘子含有googber果汁 食谱:橙汁

我知道这是严格说来SQL模式的问题,但由于我在执行中的CakePHP的网站,我宁愿当答案引用了cakephp使用的Model/Controller/View范例以及内置的CakePHP p方法。

(正是这样它会更容易对我来说,你的解决方案转换成我的代码。我不喜欢CakePHP的文档中挖掘,他们的搜索功能是非常错误)

回答

1

http://book.cakephp.org/view/1650/hasMany-through-The-Join-Model

如果你是不是,在尝试解析数据阵列时,应始终使用debug()。你可以在你的视图,控制器,模型等中使用调试,这非常有用。

没有看到你的数据阵列结构,我想先说尝试访问从用户模型找到像:

$这个 - > Model_1-> Model_2-> Model_3->找到(“所有”);或者您可以将递归级别设置为2,并查看返回的数据量以及数组中的所有关系。但是,使用debug(),以查明是否需要修改你的模型关系等。

+0

真棒,但是当我做了查找,也不会自动加入一个三级表。配料量属于配方和配料,配方属于用户。因此,当我查询IngredientQuantity时,我现在可以获取有关食谱和配料的信息,但它不会让我也询问用户的字段。除了手动加入外,我该怎么做? – 2011-03-30 06:47:24