我有一个有50个州的SQlite数据库,我想为每一个州创建一个输入。输入将使用文本字段中的数字输入更新数据库中各个州的"总数"。我创建了一个大约110行长的表单,但我确信我可以通过刀片模板的迭代来做到这一点。我只是不知道如何使表单字段对应于状态数组中的一个特定状态。
DB有一个名为Distributors的Eloquent模型,如下所示:
ID | State | Total
1 | PA | 0
我很确定,如果我为所有字段创建单独的输入值,并使用
,我可以使这个东西工作DB::table('distributors')->where('state', '==', 'PA')
->update(array('total' => 'Input::get('total')'));
但是必须有一个更容易,更自动化的方法…
将所有状态传递给视图:
$states = DB::table('distributors')->lists('state');
return view('whatev', compact('states'));
然后在视图中遍历它们:
@foreach ($states as $state)
<div class="form-group">
<label for="{{ $state }}">Total for {{ $state }}:</label>
<input type="text" id="{{ $state }}" name="totals[{{ $state }}]">
</div>
@endforeach
然后循环保存它们:
foreach (Input::get('states') as $state => $total) {
DB::table('distributors')->where('state', $state)->update(compact('total'));
}