Как из JSON данных сделать форму?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
aiaal_n
Сообщения: 11
Зарегистрирован: 2017.07.15, 07:22

Как из JSON данных сделать форму?

Сообщение aiaal_n »

Всем привет, я использую библиотеку unclead/yii2-multiple-input чтобы сделать динамическую форму.
Фото: https://ibb.co/ijDtGw
Сохранил данные в виде json

Код: Выделить всё

[{"peripheral":"1","model":"Lg","serial_number":"vdfs"},{"peripheral":"2","model":"Logitech","serial_number":"M10"},{"peripheral":"3","model":"Genius","serial_number":"K120"},{"peripheral":"4","model":"1302132012","serial_number":"1302132012"}]
и при обновлении данных я хочу чтобы из этих данных сделал форму и вставил данные в нужные ячейки.
Как можно такого добиться? Помогите пожалуйста.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как из JSON данных сделать форму?

Сообщение Nex-Otaku »

Код: Выделить всё

public function actionEdit()
{
    ...
    $model->devices = json_decode($json);
    $this->render('edit', ['model' => $model]);
}
aiaal_n
Сообщения: 11
Зарегистрирован: 2017.07.15, 07:22

Re: Как из JSON данных сделать форму?

Сообщение aiaal_n »

Nex-Otaku писал(а): 2018.01.22, 08:22

Код: Выделить всё

public function actionEdit()
{
    ...
    $model->devices = json_decode($json);
    $this->render('edit', ['model' => $model]);
}
Не помогло
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Как из JSON данных сделать форму?

Сообщение urichalex »

1. Не хранить json, а в связной таблице и форму выводить через реляции
2. Создать модель формы, Парсить json, заполнять данными из json модель формы, перед сохранением данные из модели формы обратно в json и в свойство основной модели
aiaal_n
Сообщения: 11
Зарегистрирован: 2017.07.15, 07:22

Re: Как из JSON данных сделать форму?

Сообщение aiaal_n »

urichalex писал(а): 2018.01.23, 03:43 2. Создать модель формы, Парсить json, заполнять данными из json модель формы, перед сохранением данные из модели формы обратно в json и в свойство основной модели
заполнять данными из json модель формы это делается через jquery(javascript)?
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Как из JSON данных сделать форму?

Сообщение urichalex »

aiaal_n писал(а): 2018.01.23, 03:52
urichalex писал(а): 2018.01.23, 03:43 2. Создать модель формы, Парсить json, заполнять данными из json модель формы, перед сохранением данные из модели формы обратно в json и в свойство основной модели
заполнять данными из json модель формы это делается через jquery(javascript)?

Код: Выделить всё

Class ModelFromJsonextends Model
{
	public static function createFromJson(array $data)
	{
		foreach($data as $key => $val) {
			if(isset($this->{$key})) {
				$this->{$key} = $val;
			}
		}
	}
	...
}

$model = MyModel::findOne(3524);
$modelFromJson = ModelFromJson::createFromJson(\yii\helpers\Json::decode($model->jsonData));
echo $form->field($modelFromJson, 'field');
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Как из JSON данных сделать форму?

Сообщение mkramer »

urichalex, что-то у вас статическая функция в $this лезет. Нехорошо чуши учить новичков. Хотя идея правильная

Код: Выделить всё

Class ModelFromJsonextends Model
{
	public static function createFromJson(array $data)
	{
                $obj =  new static;
		foreach($data as $key => $val) {
			$obj->{$key} = $val;
			
		}
	}
	...
}
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Как из JSON данных сделать форму?

Сообщение urichalex »

mkramer писал(а): 2018.01.23, 13:12 urichalex, что-то у вас статическая функция в $this лезет. Нехорошо чуши учить новичков. Хотя идея правильная

Код: Выделить всё

Class ModelFromJsonextends Model
{
	public static function createFromJson(array $data)
	{
                $obj =  new static;
		foreach($data as $key => $val) {
			$obj->{$key} = $val;
			
		}
	}
	...
}
Да, точно) Думал о другом
Ответить