Как отобразить данные из двух моделей в одном представлении заданным способом в cakephp 1.3? - PullRequest
0 голосов
/ 29 июня 2011

Я бы хотел отобразить данные из массива в порядке, как показано на рисунке: enter image description here

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Я буду использовать вложенный foreach.

foreach($yourvariable as $data){
  echo $data['Category']['title'];
  foreach ($data['Product'] as $myproduct){
    echo $product['whateverfield1'];
    echo $product['whateverfield2'];
  }
}
1 голос
/ 29 июня 2011

Я бы сделал CakePHP Helper .Затем вы можете создать метод внутри этого Помощника, который сгенерирует нужную вам разметку списка.Вот быстрое и грязное ...

class YourHelper extends AppHelper {

    public function your_method(array $modelData) {

        foreach ($modelData as $info) {

            $markup = '<div>'; 
            $markup .= '<h3>' . $info['Category']['title'] . '</h3>';
            $markup .= '<ul>';                

            $allProducts = $info['Product'];

            if (!empty($allProducts) {

                foreach ($allProducts as $productInfo) {

                     $markup .= '<li>' . $productInfo['desc'] . '</li>';

                 }

             } else {

                 $markup .= '<li>No products in this category!</li>';

             }

             $markup .= '</ul></div>';

         }

     return $markup;

 }

Убедитесь, что помощник включен в ваши контроллеры или AppController, тогда вы можете использовать его в своих представлениях, как и любой другой помощник.

Очевидно, я не проверял это, но с помощью этого метода вы могли бы иметь произвольное число children, а затем произвольное число Products в каждом из них.

Дайте мне знать, если это работает для вас.

...