0

Cakephp 2.1 アプリケーションのラベル、カテゴリ、製品に 3 つのモデルがあります。

製品は、hasOne 関係を通じてカテゴリとラベルに関連付けられています。

次のデータ構造を実現するために、containable または linkable を使用する最も効率的な方法は何ですか。

[Label]
    [Category]
        [Product]

基本的に、製品をカテゴリごとにグループ化し、ラベルごとにカテゴリをグループ化します。

私が思いついた唯一の解決策は、製品を取得して afterFind スタイルのデータを変更することでした

$this->Product->find('all', array(
    'contain' => array(
        'Category',
        'Label
);

次に、 foreach を使用して結果を繰り返し処理し、データ構造を再フォーマットして必要な結果を達成します。

4

1 に答える 1

0

私がそれを正しく理解したかどうかはよくわかりませんが、私の理解に基づいて、あなたがすべきことは次のとおりです。

それぞれのモデルで

Label hasMany Category; // label.php
Category belongsTo Label; // category.php
Category hasMany Product; // category.php
Product belongsTo Category; // product.php

これらの関連付けを取得する製品コントローラー。

$this->Product->Label->recursive = 2;
$this->Product->Label->find('all');

結果の構造は次のようになります

[Label]
   [Category]
      [Product]
于 2012-04-03T10:32:02.993 に答える