Laravel-在数据库中存储多个复选框形式的值

时间:2018-09-21 15:36:02

标签: javascript php html laravel laravel-5

所以我有这个代码

查看:

<div id="checkboxes">
                         <input type="checkbox" class="checkbox" name="services" value="{{ $service->id }}" id="{{ $service->id }}" />
                         <label class="whatever" for="{{ $service->id }}"><p class="serv-text"> {{ $service->service_name }} + ${{ $service->price }} </p></label>
                             </div>

控制器:

  public function store(Request $request)
    {
       orders::create(Request::all());
        return 'test';
    }

型号:

class orders extends Model
{
    protected $fillable = [
    'category', 
    'services',
    'total_price',
    'user_id',
    'status',
    'user_id'];
}

当我尝试提交表单时,即使在提交表单时选中了多个复选框,在服务数据库中也只有一个数字。 我试图在Google上找到解决方案,但没有。.

2 个答案:

答案 0 :(得分:5)

如果您有多个这样的复选框:

<input type="checkbox" name="services" value="1"/>
<input type="checkbox" name="services" value="2"/>
<input type="checkbox" name="services" value="3"/>

它将仅向服务器发送一个值,因为名称必须唯一。解决方法是使用数组输入:

<input type="checkbox" name="services[]" value="1"/>
<input type="checkbox" name="services[]" value="2"/>
<input type="checkbox" name="services[]" value="3"/>

然后,您可以在控制器中获取该输入并执行以下操作:

$services = $request->input('services');
foreach($services as $service){
 orders::create($service);
}

Laravel中的数组验证:

https://laravel.com/docs/5.7/validation#validating-arrays

有关输入数组的更多信息:

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#Handling_multiple_checkboxes

How to get form input array into PHP array

答案 1 :(得分:0)

任何人都可以帮助mo将此数组保存在may数据库中 `if($ request-> defect_id){

        foreach ($defect_id as $defect_id) {

            if(isset($request->defect_id[$area_problem_id]))
            {
                foreach ($request->defect_id[$area_problem_id] as $defect) 
                {


                    $create_check_data_project = New QaCheckDatasPerProject();
                    $create_check_data_project -> area_problem_id = $area_problem_id;
                    // $create_check_data_project -> scope_of_the_problem_id = $scope_of_the_problem_id;
                    $create_check_data_project -> defects_id = $defect;
                    $create_check_data_project -> date_time = $request->get('date');
                    $create_check_data_project -> project_site_id = $request->get('project_site_id');
                    $create_check_data_project -> house_design_id = $request->get('house_design_id');
                    $create_check_data_project -> phase_id = $request->get('phase_id');
                    $create_check_data_project -> building_id = $request->get('building_id');
                    $create_check_data_project -> block_id = $request->get('block_id');
                    $create_check_data_project -> unit_id = $request->get('unit_id');
                    $create_check_data_project -> checked_by_id = Auth::user()->id;
                    $create_check_data_project -> save();


                }
            }


        }`
相关问题