小编The*_*los的帖子

如何将未选中的复选框提交给控制器

好的,首先我在我的数据库中有一个“设置”表,其中有字段“名称”和“值”,它是一种配置类型的表,其中值可以是从字符串到布尔值等的任何内容。

现在,我的刀,我有各种输入表单“文本”,“选择”,“复选框”等在提交控制器上的形式,我跑一个foreach地方的的每个属性$request我存储其关键的名称以及它作为价值它在数据库中的值。

$agency_id = Auth::user()->agency->id;
$settings = AgencySettings::whereAgencyId($agency_id)->get();
foreach ($request->except('_token') as $key => $value)
{
    $setting = $settings->where('name','=',$key)->first();
    if (boolval($setting))
    {
        $setting->value = $value;
        $setting->update();
    }else{
        $setting = new AgencySettings;
        $setting->agency_id = $agency_id;
        $setting->name = $key;
        $setting->value = $value;
        $setting->save();
    }
}
Run Code Online (Sandbox Code Playgroud)

除了不在$request. 我知道我可以像这样处理它们,$request->has('name_of_checkbox')但由于数据库表的动态特性,我不想在我的控制器上硬编码特定设置的名称。

我的目标是,无论我将在前端使用多少不同的设置,我的 Controller 上的代码都是相同的(也许将来需要添加更多设置)。

所以我的问题是,有没有办法在服务器端处理这些复选框而不必专门引用它们,或者有办法始终将复选框的值返回给服务器,而不管其状态?

我的第一个想法是使用 javascript 和隐藏输入,但也许有更好的方法。

html php checkbox laravel laravel-5

3
推荐指数
1
解决办法
652
查看次数

标签 统计

checkbox ×1

html ×1

laravel ×1

laravel-5 ×1

php ×1