【问题标题】:Cakephp/SQL how to define a hasandbelongstomany relationship with quantities?Cakephp / SQL如何定义与数量的hasandbelongstomany关系?
【发布时间】:2011-07-25 19:00:20
【问题描述】:

我的问题如下。我有以下型号: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 使用的模型/控制器/视图范式以及内置的 cakephp 方法,我更愿意。

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

【问题讨论】:

    标签: php sql cakephp schema


    【解决方案1】:

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

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

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

    $this->Model_1->Model_2->Model_3->find('all');或者您可以将递归级别设置为 2,然后查看返回的数据量以及数组中的所有关系。但是使用 debug() 来确定是否需要修改模型关系等。

    【讨论】:

    • 太棒了,但是当我进行查找时,它不会自动加入三级表。成分数量属于配方和成分,配方属于用户。因此,当我查询成分数量时,我现在可以获得有关配方和成分的信息,但它不会让我也向用户询问字段。除了进行手动 JOIN 之外,我还能做什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多