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

Доп. Поля не отображают введённые данные после сохранения


comrues

Recommended Posts

Я пытаюсь вывести дополнительные поля в статьях (в админке каталог > статьи).

Дополнительные поля значения в базу данных, но при сохранении статьи в инпутах эти значения не отображаются.

Что я сделал:

Я создал в базе данных в таблице information_description колонку customfields и в неё по замыслу должны записываться в виде json данные всех доп полей которые я создал.

В контроллере уже есть массив $data['information_description'], По этому там я нечего не добовляю.

В twig я добавил:

<input name="information_description[{{ language.language_id }}][customfields][text]" value="{{ information_description[language.language_id][customfields].text }}" />
<input name="information_description[{{ language.language_id }}][customfields][hint]" value="{{ information_description[language.language_id][customfields].hint }}" />

 

В model я добавил 

customfields = '" . $this->db->escape(json_encode($value['customfields'])) . "',

внутрь двух функций:

public function addInformation($data) {...}
public function editInformation($information_id, $data) {...}

а также добавил 

'customfields' => json_decode($result['customfields'], true),

в функцию:

public function getInformationDescriptions($information_id) {...}

Но как я уже сказал, данные записываются в базу данных, а в инпутах не отображаются. Что я сделал не так? 
Заранее спасибо за совет и помощь!

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


2 часа назад, comrues сказал:

customfields = '" . $this->db->escape(json_encode($value['customfields'])) . "',

$value откуда здесь, если

2 часа назад, comrues сказал:

<input name="information_description[{{ language.language_id }}][customfields][text]" value="{{ information_description[language.language_id][customfields].text }}" /> <input name="information_description[{{ language.language_id }}][customfields][hint]" value="{{ information_description[language.language_id][customfields].hint }}" />

 

вообще если в БД пишется, но не выводится - дампить сам вывод

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

Спасибо что ответили)))!
 

40 минут назад, AlexDW сказал:

$value откуда здесь, если

просто код располагается внутри цикла (это код самого opencart):

Спойлер

foreach ($data['information_description'] as $language_id => $value) {
	$this->db->query("INSERT INTO " . DB_PREFIX . "information_description SET information_id = '" . (int)$information_id . "', language_id = '" . (int)$language_id . "', title = '" . $this->db->escape($value['title']) . "', description = '" . $this->db->escape($value['description']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_h1 = '" . $this->db->escape($value['meta_h1']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', customfields = '" . $this->db->escape(json_encode($value['customfields'])) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
}

 

 

 

40 минут назад, AlexDW сказал:

 

вообще если в БД пишется, но не выводится - дампить сам вывод

Я не уверен, в правильном ли месте я делаю var_dump. Я его делаю в функции getForm() {...}, что в контроллере. 

Там как раз объявляется переменная в которой массив information_description содержится и после неё я и делаю вар дамп:

Спойлер

if (isset($this->request->post['information_description'])) {
$data['information_description'] = $this->request->post['information_description'];
} elseif (isset($this->request->get['information_id'])) {
$data['information_description'] = $this->model_catalog_information->getInformationDescriptions($this->request->get['information_id']);
} else {
$data['information_description'] = array();
}

Самое главное то, что вардамб выводит нужный массив, при этом в инпуте он не отображается

 

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


12 часов назад, AlexDW сказал:

попробуйте в шаблоне

value="{{ information_description[language.language_id][customfields.text] }}

Самое интересное, что если выводить customfields не массивом, а как отдельное значение, то всё работает.

Т.е. если я в twig вывожу value="{{ information_description[language.language_id].customfields }} и в модели убираю кодирование и декодирование в json,то всё выводится.

но я не могу для каждого отдельного поля создавать новый столбец в базе данных. По этому я и хотел вывести всё массивом.

Может быть есть какие то другие решения?

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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