Хранение всех этих записей в одном столбце json на самом деле хорошая идея. Единственное, вы хотите сгруппировать все эти входные данные с одинаковыми именами, чтобы вы могли создать их массив, который облегчит вам их чтение. Итак, первым шагом будет создание столбца json () в вашей базе данных:
$table->json('options')->nullable();
После этого приведите эти параметры в виде массива в соответствующей модели, чтобы упростить чтение данных:
public $casts = [
'options' => 'array'
];
После этого измените свои входные имена, создав несколько входов опций с одинаковым array_name
, которые вы будете хранить в своей базе данных. Держите ваш key_names
другим. Вы можете использовать что-то вроде этого:
<input type="text" id="input" name="options[array_name][key_name]">
После отправки формы ваши параметры ввода должны выглядеть следующим образом:
"options" => array:2 [▼
"array_name" => array:1 [▼
"key_name" => "key_value"
]
]
Когда вы сохраняете свои значения в базе данных, вы можете l oop с помощью этих параметров и отобразите их следующим образом:
foreach($model->options as $key => $value){
<p> This is the array key: {{$key}} </p>
<p> This is the key value: {{$value}} </p>
}
Если у вас есть дополнительные вопросы, дайте мне знать.