serg_small_developer
@serg_small_developer
Начинающий прогер

Как добавить data-attribute?

Всем привет, начал изучать не так давно yii, появилась следующая задача...
у меня есть таблицы:
1) продукты - описание продуктов
2) атрибуты - название атрибутов, просто название
3) атрибуты_продукты - связывающая таблица в которой есть столбец с id продукта, атрибута и кастомный текст описания для каждого товара описание атрибута разное
структура похожая у опенкарта с атрибутами, только разница в том что у опенкарта можно добавлять разные атрибуты, а мне нужно чтобы заполнение всех атрибутов было обязательно, (так же эти атрибуты сможет добавлять и удалять только админ сайта)
таким образом мне нужно сделать на странице добавления формировались динамически блоки для каждого атрибута из таблицы,
должно быть типа label название атрибута (таблица - атрибуты) и input в котором будет текст (таблица - атрибуты_продукты ), (динамические input),
в модели я выбираю все вот так
public function getAttributes()
    {
		foreach(Attribute::find()->all() as $one){
			if (DrugsAttribute::find()->andWhere(['attribute_id' => $one->attribute_id, 'drugs_id' => $this->drugs_id])->exists()) {
				// запись существует
				$dAone = DrugsAttribute::find()->andWhere(['attribute_id' => $one->attribute_id, 'drugs_id' => $this->drugs_id])->one();
				$arrayatt[] = array('attribute_id'=>$dAone->attribute_id, 'drugs_id'=>$dAone->drugs_id, 'text'=>$dAone->text, 'name'=>$one->name);
			} else {
				$arrayatt[] = array('attribute_id'=>$one->attribute_id, 'drugs_id'=>$this->drugs_id, 'text'=>'', 'name'=>$one->name);
			}
		}
        return $arraysa;
    }

в представлении вывожу вот так
foreach($model->attribute_array as $one){
    echo $form->field($model, 'attribute_array')->textInput(['value' => $one["text"])->label($one["name"]);
}

все работает, но как это теперь сохранить изменения?) в голову пришло только что нужно как-то добавить data-attribute и айдишниками и потом в модели afterSave() сохранять изменения, но как их добавить нигде не могу найти,
пробовал вот так делать
$form->field($model, 'attribute_array')->textInput(['value' => $one["text"], 'options' =>['data-drugs_id' => $one["drugs_id"]]])->label($one["name"]);

но в post запросе нет дата параметров.

Прошу помочь или подсказать более лучший вариант, спасибо!)
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы