如何在cakephp 1.3中以给定的方式在一个视图中显示来自两个模型的数据?

时间:2011-06-29 14:50:09

标签: php cakephp-1.3

我想按顺序显示数组中的数据,如图所示: enter image description here

2 个答案:

答案 0 :(得分:1)

我会做一个CakePHP Helper。然后你可以在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中都有{{1}}。

请告诉我这是否适合您。

答案 1 :(得分:1)

我将使用嵌套的foreach。

foreach($yourvariable as $data){
  echo $data['Category']['title'];
  foreach ($data['Product'] as $myproduct){
    echo $product['whateverfield1'];
    echo $product['whateverfield2'];
  }
}