Показать массив в представлении / codeigniter контроллера - PullRequest
0 голосов
/ 21 мая 2018

У меня нет такого же результата, когда я var_dump массив в моем контроллере и на мой взгляд.Это мой контроллер:

    public function index()
{
    $getFestivals = $this->festival_model->getAllFestivals();
    if (!empty($getFestivals)) {
        foreach ($getFestivals as $festival) {
            $countFestivalEdition = $this->festival_model->countFestivalEditionByFestivalID($festival->fID);
            $festival->fCountEdition = $countFestivalEdition;
        }
    }

    $this->data['getFestivals'] = $getFestivals;
    @var_dump($this->data['getFestivals']);die;
    $this->render_layout('festivals/index', $this->data);
}

var_dump (juste перед последней строкой) возвращает меня:

      0 => 
    object(stdClass)[24]
      public 'fID' => string '6' (length=1)
      public 'fName' => string 'Festival2' (length=17)
      public 'fPicture' => string '3df2c152d9dec657380c53b679d0b92b.jpg' (length=36)
      public 'fCity' => string 'City2' (length=9)
      public 'fCountry' => string 'France' (length=6)
      public 'fCountEdition' => int 2
  1 => 
    object(stdClass)[25]
      public 'fID' => string '8' (length=1)
      public 'fName' => string 'Festival1' (length=19)
      public 'fPicture' => string '73a267e6c047d507b66b3a1ab1fc0059.jpg' (length=36)
      public 'fCity' => string 'City1' (length=16)
      public 'fCountry' => string 'France' (length=6)
      public 'fCountEdition' => int 1

В этом var_dump у меня есть 'fCountEdition'.Когда я делаю var_dump на моем представлении, у меня есть это (var_dump ($ getFestivals); die;):

      0 => 
    object(stdClass)[24]
      public 'fID' => string '6' (length=1)
      public 'fName' => string 'Festival2' (length=17)
      public 'fPicture' => string '3df2c152d9dec657380c53b679d0b92b.jpg' (length=36)
      public 'fCity' => string 'City2' (length=9)
      public 'fCountry' => string 'France' (length=6)
  1 => 
    object(stdClass)[25]
      public 'fID' => string '8' (length=1)
      public 'fName' => string 'Festival1' (length=19)
      public 'fPicture' => string '73a267e6c047d507b66b3a1ab1fc0059.jpg' (length=36)
      public 'fCity' => string 'City1' (length=16)
      public 'fCountry' => string 'France' (length=6)

Почему он не анализирует мои данные fCountEdition?

Для информации мой render_layout выглядит так:
$ this-> load-> view ($ view, $ this-> data);

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Это потому, что вы не ссылаетесь на $getFestivals, вместо этого вы передаете его значение $festival и пытаетесь присвоить ему новую переменную.

По сути, передача значения позволяет вам «копировать» массив / объект / и т. Д. Без изменения оригинала.

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

Делайте это так, как вы написали код, вместо этого вам нужно ссылаться на оригинал.

foreach ($getFestivals as &$festival) {   <-- add ampersand before $
        $countFestivalEdition = $this->festival_model->countFestivalEditionByFestivalID($festival->fID);
        $festival->fCountEdition = $countFestivalEdition;
    }
0 голосов
/ 22 мая 2018

Вы можете попробовать этот простой способ отправки массива для просмотра, как показано ниже.

Контроллер

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Home extends CI_Controller {

    public function index()
    {       
        $data=$this->db->query("SELECT * FROM table_name");
        $result=$data->result_array();

        $headerData = array(
        "pageTitle" => "Home",
        "stylesheet" => array("home.css")
    );
    $footerData = array(
        "jsFiles" => array("home.js")
    );
    $viewData = array(
        "viewName" => "home",
        "viewData" => array('result'=>$result),
        "headerData" => $headerData,
        "footerData" => $footerData 
    );
    //Sendig all Result Data to view by Storing into array as $result
    $this->load->view('template',$viewData);
}

Просмотр

<?php 

   var_dump($result);

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...