Как добавить несколько строк для одной записи в laravel? - PullRequest
0 голосов
/ 30 апреля 2020

image

Как видите, на изображении есть кнопка Добавить строку. которые добавляют несколько строк для одной записи. Я пытаюсь создать базу данных для этого, но запутался в этом шаге. Одна мысль, я должен хранить эти данные в виде json для каждого столбца. Но я не думаю, что это хороший подход. Пожалуйста, поделитесь своими идеями Как я могу добавить несколько значений для одной записи в базе данных?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Хранение всех этих записей в одном столбце 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>
}

Если у вас есть дополнительные вопросы, дайте мне знать.

0 голосов
/ 30 апреля 2020

Это зависит от ваших требований.

Если вам нужно применить к нему много действий, то создайте новую таблицу cartons и добавьте туда их значения с идентификатором основной таблицы - внешним ключом. Тогда вы можете получить к нему доступ через Laravel отношений. Тогда легко управлять JSON, а фильтрация выполняется быстрее, чем JSON.

Но если эти записи не потребуются слишком много в других местах, вы просто добавляете их один раз, а затем используете очень редко, тогда JSON хорошо.

...