从生成的复选框

时间:2015-11-04 21:11:46

标签: php mysql database forms laravel

如果之前有人问过这个问题,我很抱歉,这是我第一个使用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) 可以从这个表单生成。

感谢。

编辑:我有数据发布到第二个表,但目前有一个null employee_id(如上所述) - 我现在正试图找到一种方法将employee_id发布到employee_labour_types表。这是第一个插入中'employee'表中的'id'。是唯一的方法来查询它然后添加它吗?

感谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

我的查询:

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

在我的插入声明中

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