Невозможно разобраться в этой ошибке.Сообщение: попытка получить свойство необъекта - PullRequest
0 голосов
/ 08 июня 2018

Я просто пытаюсь получить штаты на основе выбора страны.Пока я пытаюсь получить состояния, я получаю следующую ошибку.

<p>Severity: Notice</p>
<p>Message:  Trying to get property of non-object</p>
<p>Filename: General/Common.php</p>
<p>Line Number: 19</p>

Вот моя модель

function get_states($param_countryid)
    {
        $get_states = $this->db->order_by($this->state_name, 'asc')->where($this->c_id ,$param_countryid)->get($this->tbl_state)->result_array();
        $states = array();
        foreach ($get_states as $state_row) {
            $states[$state_row[$this->state_id]] = $state_row[$this->state_name ];
        }
        return $states;
    }

Это мой контроллер (Common.php)

$data['states'] = $this->commodel->get_states($this->input->post('country_id'));
        $states = null;
       foreach ( $data['states']  as $states_row ) {
            $states .= "<option value='" . $states_row->id. "'>" . $states_row->name. "</option>"; Line Number 19 mentioned in the error.

        }
        echo $states;

Что я получаю от print_r($data['states']) (Предположим, выбрана страна, например, Индия)

Array ( [1] => Andaman and Nicobar Islands [2] => Andhra Pradesh [3] => Arunachal Pradesh [4] => Assam [5] => Bihar [6] => Chandigarh [7] => Chhattisgarh [8] => Dadra and Nagar Haveli [9] => Daman and Diu [10] => Delhi [11] => Goa [12] => Gujarat [13] => Haryana [14] => Himachal Pradesh [15] => Jammu and Kashmir [16] => Jharkhand [17] => Karnataka [19] => Kerala [20] => Lakshadweep [21] => Madhya Pradesh [22] => Maharashtra [23] => Manipur [24] => Meghalaya [25] => Mizoram [26] => Nagaland [29] => Odisha [31] => Pondicherry [32] => Punjab [33] => Rajasthan [34] => Sikkim [35] => Tamil Nadu [36] => Telangana [37] => Tripura [38] => Uttar Pradesh [39] => Uttarakhand [41] => West Bengal )

Когда я пытался

$states .= "<option value='" . $states_row['id']. "'>" . $states_row['name']. "</option>";

Я получаю следующую ошибку.

Сообщение: недопустимое смещение строки 'id'

Сообщение: недопустимое смещение строки 'name'

Пожалуйста, сообщите мне, гдеЯ делаю свою ошибку в этом коде.

1 Ответ

0 голосов
/ 08 июня 2018

Как вы можете видеть из print_r($data['states']), вы получаете ключ, который является идентификатором состояния, а значение каждого элемента - это имя.Таким образом, вы должны сделать вывод, как ...

foreach ( $data['states']  as $id=>$name ) 
{
  $states .= "<option value='" . $id. "'>" . $name. "</option>"; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...