Ладно, так как обычно у меня не было бы проблем с этим, и это было бы довольно прямолинейно, но не так много на этот раз.
Вот соответствующий код в моем контроллере:
// 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);