如果之前有人问过这个问题,我很抱歉,这是我第一个使用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'。是唯一的方法来查询它然后添加它吗?
感谢。
答案 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'}