でレシピや食材を扱うレシピや食材について記事を投稿しましたが、不運にも私の投稿では十分ではなかったので、これでもっと明確にしようとしています。CakePHP 3/MySQL
私は2つのSQLテーブルを持っている:
PRODUCTS (id, code, name)
RECIPES (product_id, ingredient_id, qty)
PRODUCT_IDとingredient_idは、テーブルの製品の両方のidのです。 「最終」生成物は、副生成物によって化合物とすることができる。
1つのビューにレシピを作成するために必要なすべてのレシピをツリービューで表示します。
私は例を行います、このために、我々はそのようなデータベースエキス持つことができます。
Product A - 10
--> Product A1 - 50 (5*10)
--> Product A2 - 90 (9*10)
------> Product A21 - 180 (2*(9*10))
------> Product A22 - 270 (3*(9*10))
--> Product A3 - 110 (11*10)
:10の製品Aにするために、例えば
PRODUCTS (id is auto_increment)
code | name |
________|________________|
A | Product A |
A1 | Product A1 |
A2 | Product A2 |
A21 | Product A21 |
A22 | Product A22 |
A3 | Product A3 |
RECIPES
product_id | ingredient_id | qty |
_____________|_______________|_____|
A | A1 | 5 |
A | A2 | 9 |
A | A3 | 11 |
A2 | A21 | 2 |
A2 | A22 | 3 |
を、私はこれを表示したいです私は成分(A1、A2、A3)のリストを表示できますが、商品A2についてはA21とA22のようなすべてのサブレシピを表示することはできません。私は私のコントローラでこれをやっている
:
$ingredients[] = [$codeProduct=> $this->Recipes->getListOfIngredients($codeProduct)];
getListOfIngredients機能:そのコードで
public function getListOfIngredients($code = null){
if ($code <> null){
$ingredients = $recipes->find('all', ['conditions' => ['Recipes.product_id = ' => $code]]);
return $ingredients->toArray();
}
}
、$ingredients[]
は、製品のすべての成分が含まれていますが、どのように私はすべてのサブを追加することができます - レシピ?
ありがとうございました。
私たちにいくつかのコードを表示したほうがいいでしょうか、この質問は下降して閉じてしまうでしょう – RiggsFolly
@RiggsFolly私の投稿を編集しました。 – BlackAlpha