您可以看到图像具有添加行按钮。其中为一条记录添加多行。我正在尝试为此设计数据库,但对此步骤感到困惑。一个想法是,我应该以每列json的形式存储此数据。但是我认为这不是一个好方法。请分享您的想法我如何为数据库中的同一记录添加多个值?
取决于您的要求。
如果需要对其执行许多操作,请创建一个新表cartons
,并在其中添加其值以及主表的ID作为外键。然后,您可以通过Laravel关系访问它。 JSON易于管理,并且筛选比JSON更快。
但是如果在其他地方不需要太多这些记录,则只需将它们添加一次,然后使用非常少见的JSON就可以了。
将所有这些记录存储在单个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"
]
]
当您将值存储在数据库中时,可以遍历这些选项并按如下所示显示它:
foreach($model->options as $key => $value){
<p> This is the array key: {{$key}} </p>
<p> This is the key value: {{$value}} </p>
}
[如果还有其他问题,请告诉我。