cakephp foreach循环只显示标题

时间:2016-04-21 10:05:11

标签: php cakephp module model controller

我想从数据库中显示data,并且我在model file中创建了一个功能,该功能显示了数据库中的数据,但所有值都显示在array format中。

问题是,当我在foreach循环中打印echo $values['title'];时,它只显示来自title数组的第一个字母??

型号代码

 function reviewcitypage()  
 {

 $cacheKey = 'city_page';
 GigaCache::set(array('duration'=>"+1 minutes",'path'=>CACHE));
 $cachedCategoryData = GigaCache::read($cacheKey);

    if($cachedCategoryData && !cr('DynamicPage.field'))
    {   
        $recentactivity = $cachedCategoryData;
    }else
    {
        $recentactivity= $this->find("list",array("conditions"=>array("status"=>1),'fields'=>array('title','body','rating'),'recursive'=>-1,'limit'=>10));  
        //dont't set cache if dynamic field
        if(!cr('DynamicPage.field'))
        {
          GigaCache::set(array('duration'=>"+1 minutes",'path'=>CACHE));
          GigaCache::write($cacheKey,$recentactivity);
        }
    }


    return $recentactivity;

}

查看文件

$ReviewObj = cri('Review');
      $recentactivity = $ReviewObj->reviewcitypage();

      foreach ($recentactivity as $name => $value){ 

          foreach($value as $values)
            {             
                echo $values['title'];
            }
      }

**问题现在解决,感谢支持**

i have changed the code in model file and it is woking now

$recentactivity= $this-
>find("all",array("conditions"=>array("status"=>1),'recursive'=>-1,
'limit'=>10));  

1 个答案:

答案 0 :(得分:3)

您的find()查询正在将数据准备为'list'。在蛋糕列表中总是键=>值对数组。所以在你的视图中,当你使用第二个foreach循环时,你会说一个字符串中的foreach字符...做.....

示例中的

$value只能是一个字符串。预告它只能使$ value成为一个char。

如果您仍然不确定我的意思,请告诉我。不是最能解释我的意思

  

http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find-list

因为您在3个字段之后,我建议使用firstall代替list作为find()方法中的第一个参数。