2012-01-06 129 views
2

我有CodeIgniter问题。我如何从控制器传递数组来查看?这里是我的代码无法正常工作:codeigniter:从控制器传递数组以查看

控制器:

$data_part13['header3_item'][] = array('title' => 'first image 1' , 'img' => 'https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQoshslL3aMNzG50708domqPSA4ouPjk_wA7jCpVRUH3k8zVdn9'); 

$this->load->view('part_1_3', $data_part13); 

和看法:

<div id="header3"> 
    <div id="header3-inner"> 
     <?php 
     if (isset($header3_item)){ 
      foreach ($header3_item as $key) { 
     ?> 
       <div class="header3-item"> 
        <img alt="<?php echo($key->title); ?>" src="<?php echo($key->img); ?>"/> 
       </div> 
     <?php 
      } 
     } 
     ?> 
    </div> 
</div> 

回答

6

你们这样做是正确的(有点)。你向视图传递了一个数组,但是你的问题是你在视图中使用了一个对象。你应该改为做这样的事情:

$data_part13['header3_item'][] = (object) array('title' => 'first image 1' , 'img' => 'https://encrypted-tbn0.google.com/images?q=tbn:ANd9GcQoshslL3aMNzG50708domqPSA4ouPjk_wA7jCpVRUH3k8zVdn9'); 

$this->load->view('part_1_3', $data_part13); 

视图部分可以保持不变。

+0

谢谢你的回答,它为我工作。但我仍然不明白为什么我需要“(对象)”?它是PHP标准还是Codeigniter方法? – Irakli 2012-01-06 10:18:04

+4

好吧,将对象看作是一个箭头,并将数组看作一块砖块。它们都是由原子构成的,但它们看起来不一样。你可以用' - >'(箭头)和'['..']'(砖)来访问一个对象,但是你不能**用数组调用访问对象数据。 – MJA 2012-01-06 10:50:54

2

您正确传递它,但您没有从视图中正确访问它。而不是$key->title,您需要使用$key['title'];

相关问题