Как отправить несколько переменных в представление codeigniter? - PullRequest
1 голос
/ 30 апреля 2019

Я пытаюсь использовать переменную массива $popular_data в представлении Codeigniter, она устанавливается с помощью скрипта Modesty.

Я пытался добавить эту переменную к уже переданной для просмотра массиву_мерджей, $ 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 ]

2 голосов
/ 30 апреля 2019

хранить в $data

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

затем сделайте foreach внутри вашего представления.

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

}
1 голос
/ 30 апреля 2019

Создайте массив с каждой из переменных:

$data['variable1'] =  $variable1;

$data['variable2'] =  $variable2;

$data['variable3'] =  $variable3;

$this->load->view('template_name',$data) // add data array here in 2nd parameter
1 голос
/ 30 апреля 2019

сначала вы можете добавить данные в $ data ['PopularProducts'], а затем передать их в представление.

$data['popularproducts'] = $popularproducts;

$this->load->view('index', $data);
0 голосов
/ 30 апреля 2019

В CodeIgniter мы можем отправлять данные из контроллера для просмотра в виде ассоциативного массива.

Вызов функции $this->load->view() имеет два параметра:

1) Просмотр (шаблон) файла (путь)если его нет в папке /application/views по умолчанию.

2) Массив ассоциативных данных для передачи.

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

Если вы передадите $data в приведенном выше сценарии, ваш шаблон index.php имеет переменную $popularproducts.

$popularproducts в шаблоне / представлении совпадает с тем, что вы передали из контроллера.

0 голосов
/ 30 апреля 2019

Чтобы передать несколько значений от 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...