【问题标题】:Inserting multiple entries to database from generated checkboxes从生成的复选框将多个条目插入数据库
【发布时间】:2016-02-05 13:15:13
【问题描述】:

如果之前有人问过这个问题,我深表歉意,这是我第一个使用 laravel 的项目,我找不到类似的问题。

我正在尝试将复选框字段中的值插入到数据库中,该字段具有从另一个数据库生成的值。

我的表单中的一个片段:

        @foreach($labourTypes as $id => $name)
            <div class="checkbox">
                <label>
                    {!! Form::checkbox("labour_types[]", $id) !!} {{$name}}
                </label>
            </div>
        @endforeach

我正在将此表单中的数据插入到两个不同的表中。我插入了第一个表数据,但是第二个表需要来自这些复选框的数据,以及来自第一个表的数据。

这是我目前在我的控制器中拥有的:

    $labour_types = Input::get('labour_types');
    DB::table('employee')->insert([
        'id' => null,
        'employee_name' => $_POST['employeeName']
    ]);
    foreach($labour_types as $labour_type)
        DB::table('employee_labour_types')->insert([
            'id' => null,
            'labour_type_id' => 'labour_type[]',
            'employee_id' => null
        ]);
    }

第二张表中的ID是自增的,但员工ID来自第一张表中的自增ID。如果他们有不同的劳动力类型,我正在尝试为同一员工分别输入。

例如在我的第二张表中:(id = 1, labour_type_id = 1, employee_id = 1), (id = 2, labour_type_id = 2, employee_id = 1) 可以从这个表格生成。

谢谢。

编辑:我已将数据发布到第二个表,但当前的employee_id 为空(如上) - 我现在正试图找到一种将employee_id 发布到employee_labour_types 表的方法。这是第一个插入中“员工”表中的“id”。这样做是查询它然后添加它的唯一方法吗?

谢谢。

【问题讨论】:

    标签: php mysql database forms laravel


    【解决方案1】:

    在使用 Laravel 时,你并不想使用 $_POST。此外,从 PHP 中的输入读取时,您不会在名称中包含 []。要访问该数组,您将...

    $labour_types = \Input::get('labour_types');
    foreach($labour_types as $labour_type) {
        ...
    }
    

    【讨论】:

    • 当你回复这个时,我实际上只是在编辑我的帖子。我应用了更改 - 但是我现在在尝试发布表单时出现错误:“未定义变量:labourTypes”在我的 .php 页面中具有表单
    • Undefined $labourTypes 与您发送的数据有关。如果您将 $labour_types 作为参数名称传递,我想您应该使用它。
    • 我刚刚将 $labourTypes 变量(在我的 get 中)添加到我的帖子中,并将其添加到返回视图中,它似乎解决了我的问题。我现在正试图弄清楚如何从第一个插入中查询 ID 以将其插入到第二个表中
    【解决方案2】:

    我得到了它的工作 - 对于未来的类似问题,我的解决方案:

    我的查询:

    $empid = DB::select("SELECT id AS \"Name\" FROM employee WHERE employee_name = '" . $_POST['employeeName'] . "'");
    

    在我的插入语句中

        'employee_id' => $empid[0]->{'Name'}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 2017-10-11
      • 1970-01-01
      相关资源
      最近更新 更多