【问题标题】:Iterating laravel form that update rows in column based off value of adjoining column迭代 laravel 表单,根据相邻列的值更新列中的行
【发布时间】:2015-11-15 13:26:23
【问题描述】:

我有一个包含 50 个状态的 SQlite 数据库,我想为 50 个状态中的每一个创建一个输入。输入将使用其文本字段中输入的数字更新数据库中各个州的“总数”。我创建了一个大约 110 行长的表单,但我确信我可以通过刀片模板中的迭代来做到这一点。我只是不知道如何使表单字段对应于状态数组中的一个特定状态。

数据库有一个名为 Distributors 的 Eloquent 模型,如下所示:

ID   |  State  | Total
1    |  PA     |  0     

我很确定如果我为所有字段创建单独的输入值并使用

DB::table('distributors')->where('state', '==', 'PA')
->update(array('total' => 'Input::get('total')'));

但必须有一种更简单、更自动化的方法......任何方向都会受到赞赏。

【问题讨论】:

    标签: php sqlite laravel laravel-4 eloquent


    【解决方案1】:

    将所有状态传递到您的视图中:

    $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'));
    }
    

    【讨论】:

    • 谢谢你,你帮助我了解了如何将这样的信息传递到视图中并使用它。
    • 我应该在我的控制器中迭代那个循环吗?或者我也应该在 HTML 文档中这样做?我在使用控制器时遇到路由问题。
    猜你喜欢
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2023-02-22
    相关资源
    最近更新 更多