Cakephp / SQL如何定义与数量的hasandbelongstomany关系?

时间:2011-03-30 03:34:17

标签: php sql cakephp schema

我的问题如下。我有以下模型:Recipe and Ingredient。我想在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方法。

(就这样我会更容易将您的解决方案转换为我的代码。我不喜欢挖掘cakephp文档,他们的搜索功能非常错误)

1 个答案:

答案 0 :(得分:1)

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

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

如果没有看到您的数据数组结构,我首先会尝试从类似以下的查找中访问用户模型:

$这 - > Model_1-> Model_2-> Model_3->发现( '全部');或者您可以将递归级别设置为2,并查看您获得的数据量以及数组中的所有关系。但是使用debug()来确定是否需要修改模型关系等。