在Codeigniter中合并多个对象值

时间:2017-12-14 11:26:44

标签: php codeigniter

我的控制器中有三个值,如:

 $data['all_video_posts_ByCategory'] = $this->Blogmodel->all_video_posts_ByCategory($cat_id);
 $data['all_text_posts_ByCategory'] = $this->Blogmodel->all_text_posts_ByCategory($cat_id);
 $data['all_audio_posts_ByCategory'] = $this->Blogmodel->all_audio_posts_ByCategory($cat_id);

在我的视图页面中,我必须在一个foreach循环中显示所有帖子。那么如何合并这三个数据并发送到查看页面?

3 个答案:

答案 0 :(得分:0)

由于您将所有数据存储在$ data中

return $data

更好的解决方案是划分这些变量

$data['all_video_posts_ByCategory'] = $this->Blogmodel->all_video_posts_ByCategory($cat_id);
$data['all_text_posts_ByCategory'] = $this->Blogmodel->all_text_posts_ByCategory($cat_id);
$data['all_audio_posts_ByCategory'] = $this->Blogmodel->all_audio_posts_ByCategory($cat_id);

将您的代码更改为

$videos = $this->Blogmodel>all_video_posts_ByCategory($cat_id);
$texts = $this->Blogmodel->all_text_posts_ByCategory($cat_id);
$audio = $this->Blogmodel->all_audio_posts_ByCategory($cat_id);

然后您可以单独返回它们并在您的视图中逐个访问它们

答案 1 :(得分:0)

我建议确保您的模型返回$this->db->get()->result_array();

然后在您的控制器中执行以下操作:

$videos = $this->Blogmodel>all_video_posts_ByCategory($cat_id);
$texts = $this->Blogmodel->all_text_posts_ByCategory($cat_id);
$audio = $this->Blogmodel->all_audio_posts_ByCategory($cat_id);

$data['array'] = array_merge($videos, $texts, $audio);

答案 2 :(得分:0)

如果你想使用相同的逻辑,那么用多维数组做。

  

$ data ['post'] ['all_video_posts_ByCategory'] = $ this-> Blogmodel-> all_video_posts_ByCategory($ cat_id);   $ data [post] ['all_text_posts_ByCategory'] = $ this-> Blogmodel-> all_text_posts_ByCategory($ cat_id);   $ data ['post'] ['all_audio_posts_ByCategory'] = $ this-> Blogmodel-> all_audio_posts_ByCategory($ cat_id);

在视图中使用逻辑

foreach($post as $row) {  foreach($row as $innerpost) {print your values;} } 

为什么选择多维数组,因为如果您希望将来如果您希望单独使用音频,视频和文字帖子,那么

如果你想使用一个foreach循环,那么你需要先在控制器中合并数组,然后才能使用。