Codeigniter – передача нескольких значений для просмотра

Ладно, так как обычно у меня не было бы проблем с этим, и это было бы довольно прямолинейно, но не так много на этот раз.

Вот соответствующий код в моем контроллере:

// In order to properly build the form url, we need to include the // category and product to the view $this->data = array( 'category' => $category, 'product' => $product ); // Load the product model and get editable values from the database $this->load->model('productadmin/products_model'); $productInformation = $this->products_model->get_product_data($product); // Modular code! Use variable-variables to prevent having to write multiple lines of code // when we start returning more information from the data foreach ( $productInformation as $variable => $value ) { $this->data[$variable] = $value; } 

Теперь, в идеале, я должен иметь доступ к $ product, $ category и любым переменным, возвращаемым из модели продуктов. Выполняя print_r, я получаю следующее:

 Array ( [category] => 1 [product] => 1 [0] => Array ( [id] => 1 [product_name] => Duff ) ) 

Обратите внимание, что то, что было создано оператором foreach, содержится в собственном массиве. Самое простое решение – узнать, как получить доступ к этому второму массиву из представления, просто передав $this->data .

Если это не работает, что я могу изменить, чтобы назначить ассоциативные значения модели внутри массива данных, не создавая в ней еще один массив?

Модель просто возвращает пары ключей, значений из инструкции get_where.

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

 foreach ( $productInformation as $variable => $value ) { $this->data[$variable] = $value; } 

с этим:

 foreach ( $productInformation as $variable => $value ) { $this->data['product_information'][$variable] = $value; } 

А затем, на ваш взгляд, вы можете получить доступ к информации о своем продукте, используя переменную $product_information .

Примечание. Я предполагаю, что вы передаете свои данные в представление, используя:

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