如何将多个变量发送到codeigniter的视图?

时间:2019-04-30 03:41:28

标签: php codeigniter variables

我正在尝试在Codeigniter的视图中使用数组变量$popular_data,该变量是使用Modesty脚本安装的。

我试图将此变量附加到array_merge已传递给$ data + $ variable的变量上

在型号中:

public function get_popular_products(){
    $popular_data = $this->db->query(‘SELECT... ’)->result_array();
    return $popular_data;
}

在控制器中:

$this->load->model("Popularproduct_model");
$popularproducts = $this->Popularproduct_model->get_popular_products();

var_dump($popularproducts)此处(在控制器中)以

的形式在视图顶部显示了查询的热门产品。
array(3) {
  [0]=>
  array(34) {
    ["id"]=>
    string(1) "3"
    ["title"]=>
    string(13) "Patchouli Oil"
    ["slug"]=>
    string(15) "patchouli-oil-3"
...

传递给视图的其他变量为:

$this->load->view('index', $data);

那么如何将$popularproducts发送到视图并使用值呢?

谢谢。

5 个答案:

答案 0 :(得分:2)

将其存储在$data

$data['popularproducts'] = $this->Popularproduct_model->get_popular_products();

然后在视图内进行 foreach

foreach($popularproducts as $data){
  echo $data['title'].'<br>'.
       $data['slug'];

}

答案 1 :(得分:1)

首先,您可以将数据添加到$ data ['popularproducts']中,然后将其传递到视图中。

$data['popularproducts'] = $popularproducts;

$this->load->view('index', $data);

答案 2 :(得分:1)

使用每个变量制作一个数组:

$data['variable1'] =  $variable1;

$data['variable2'] =  $variable2;

$data['variable3'] =  $variable3;

$this->load->view('template_name',$data) // add data array here in 2nd parameter

答案 3 :(得分:0)

  

要将多个值从controller传递到view,您应该使用下面给出的示例的数组

     

每个变量都作为示例,您可以根据需要进行转换

控制器:

$data['variable'] =  $variable;//from db or hardcoded

$data['arrayofObject'] =  $arrayofObject;//from db or hardcoded

$data['arrayofArray'] =  $arrayofArray;//from db or hardcoded

$this->load->view('index',$data) // add data array here in 2nd parameter

查看:

i.e:
<div>
     <span><?php echo $variable; ?></span>
</div>
<div>
     <ul>
     <?php if(!empty($arrayofObject)) { ?>
          <?php for($arrayofObject as $obj) { ?>
              <li><?php echo $obj->key; ?></li>
          <?php } ?>
     <?php } ?>
     </ul>
</div>
<div>
     <ul>
     <?php if(!empty($arrayofArray)) { ?>
          <?php for($arrayofArray as $ary) { ?>
              <li><?php echo $ary['key']; ?></li>
          <?php } ?>
     <?php } ?>
     </ul>
</div>

答案 4 :(得分:0)

在CodeIgniter中,我们可以从Controller发送数据以将其作为关联数组进行查看。

函数调用$this->load->view()有两个参数:

1)查看(模板)文件(如果文件不在默认/application/views文件夹中,则为路径。

2)要传递的关联数据数组。

$data['popularproducts'] = $popularproducts;
$this->load->view('index', $data);

如果在上述情况下通过$data,则模板index.php具有变量$popularproducts

模板/视图中的

$popularproducts与您从Controller传递的相同。