Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

использование новой переменной из БД


Recommended Posts

Создал новый столбец "order_product_note" в таблице БД "oc_order_product".

В admin/controller/sale/order.php добавил:

$data['order_products'] = array();

			$products = $this->model_sale_order->getOrderProducts($this->request->get['order_id']);

			foreach ($products as $product) {
				$data['order_products'][] = array(
					'product_id' => $product['product_id'],
					/*...*/
					'order_product_note' => $product['order_product_note']
				);
			}

В admin/view/template/sale/order_info.tpl пытаюсь вывести:

<?php foreach ($products as $product) { ?>
	<?php echo $product['order_product_note']; ?>
<?php } ?>

Пишет: "Notice: Undefined index: order_product_note..."

Где надо определить массив/переменную?

Надіслати
Поділитися на інших сайтах


8 хвилин назад, stasonsky сказав:

Где надо определить массив/переменную?

<?php echo $order_product_note; ?>

Змінено користувачем Flint2000
Надіслати
Поділитися на інших сайтах

22 минуты назад, stasonsky сказал:

 


<?php foreach ($products as $product) { ?>
	<?php echo $product['order_product_note']; ?>
<?php } ?>

 

 

<?php foreach ($order_products as $product) { ?>
	<?php echo $product['order_product_note']; ?>
<?php } ?>

 

Надіслати
Поділитися на інших сайтах

К сожалению не сработал ни один

1 час назад, DM8985 сказал:

Так у вас массив order_products


<?php foreach ($order_products as $order_product) { ?>
	<?php echo $order_product['order_product_note']; ?>
<?php } ?>

 

ни другой вариант

1 час назад, buslikdrev сказал:

 


<?php foreach ($order_products as $product) { ?>
	<?php echo $product['order_product_note']; ?>
<?php } ?>

 

при этом из массива нормально вытягивает 'order_product_id' из таблицы "oc_order_product"

<?php foreach ($products as $product) { ?>
	<?php echo $product['order_product_id']; ?>
<?php } ?>

Может в модели запроса какого-то не хватает

Надіслати
Поділитися на інших сайтах


1 час назад, stasonsky сказал:

Создал новый столбец "order_product_note" в таблице БД "oc_order_product".

В admin/controller/sale/order.php добавил:


$data['order_products'] = array();

			$products = $this->model_sale_order->getOrderProducts($this->request->get['order_id']);

			foreach ($products as $product) {
				$data['order_products'][] = array(
					'product_id' => $product['product_id'],
					/*...*/
					'order_product_note' => $product['order_product_note']
				);
			}

В admin/view/template/sale/order_info.tpl пытаюсь вывести:


<?php foreach ($products as $product) { ?>
	<?php echo $product['order_product_note']; ?>
<?php } ?>

Пишет: "Notice: Undefined index: order_product_note..."

Где надо определить массив/переменную?

А вы этот столбец в какую таблицу добавили? В product или order_product? Если добавили в product - то оно у вас из Бд и не выгребется, потому что там выборка из таблицы order_product происходит.

Плюс еще надо проверить, что у вас модель sale/order не изменена на выборку конкретных столбцов.

Надіслати
Поділитися на інших сайтах

6 минут назад, OtezVikentiy сказал:

У вас проблема в том, что модель эти данные не отдает. Зайдите в модель sale/order и там в методе getOrderProducts надо проверить, что вообще эти данные из БД возвращаются. Не факт, что там select * from. Может быть там в модели определенный список полей только выгружается и соответственно в выдаче этого поля не будет.

в модели:

public function getOrderProducts($order_id) {
	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

	return $query->rows;
}
 

Новый столбец создал вручную в "oc_order_product", через phpMyAdmin

 

Змінено користувачем stasonsky
Надіслати
Поділитися на інших сайтах


13 минут назад, DM8985 сказал:

Значит нужно смотреть модель, без нее ничего не понятно.

шаблон дефолтный

конкретно getOrderProducts:

public function getOrderProducts($order_id) {
	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

	return $query->rows;
}

 

Надіслати
Поділитися на інших сайтах


49 минут назад, stasonsky сказал:

шаблон дефолтный

конкретно getOrderProducts:


public function getOrderProducts($order_id) {
	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

	return $query->rows;
}

 

А вы можете полный текст ошибки показать, пожалуйста?
Потому что эта ошибка у вас может возникать в 2 местах. Либо в контроллере либо во вьюхе.

Для проверки в контроллере перед setOutput строкой можно прописать типа print_r($data['products']); и посмотреть будет ли в выдаче нужный ключ. Если будет - значит проблема на фронте. Если нет - значит в связке модель - контроллер. 

И опять же не забывайте чистить кэши. Потому что, если вы их не чистите - то ничего по запускаемому коду и не меняется.

Надіслати
Поділитися на інших сайтах

1 час назад, OtezVikentiy сказал:

А вы можете полный текст ошибки показать, пожалуйста?

Notice: Undefined index: order_product_note in \admin\view\template\sale\order_info.tpl on line 210

<?php echo $product['order_product_note']; ?>

 

1 час назад, OtezVikentiy сказал:

Для проверки в контроллере перед setOutput строкой можно прописать типа print_r($data['products']); и посмотреть будет ли в выдаче нужный ключ

Как пользоваться и как посмотреть? Можно чуть подробнее? 

Надіслати
Поділитися на інших сайтах


17 минут назад, stasonsky сказал:

Notice: Undefined index: order_product_note in \admin\view\template\sale\order_info.tpl on line 210


<?php echo $product['order_product_note']; ?>

 

Как пользоваться и как посмотреть? Можно чуть подробнее? 

попробуйте обновить модификаторы и кэш. Если не поможет - то тогда стоит в контроллер для проверки перед setOutput строкой прописать на новой строке 

print_r($data['products']);die;

и посмотреть будет ли в выдаче нужный ключ order_product_note

Надіслати
Поділитися на інших сайтах

в контроллере есть массив

$data['order_products'][] = array(

а есть

$data['products'][] = array(

в который и надо было вставить переменную

'order_product_note' => $product['order_product_note']

Теперь нормально выводятся значения из бд oc_order_product

Всем отписавшимся - спасибо, ошибка была с моей стороны(

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.