【问题标题】:Laravel - Store multiple checkbox form values in databaseLaravel - 在数据库中存储多个复选框表单值
【发布时间】:2019-02-26 01:24:31
【问题描述】:

所以我有这个代码

查看:

<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'];
}

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

【问题讨论】:

    标签: javascript php html laravel laravel-5


    【解决方案1】:

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

    <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

    【讨论】:

      猜你喜欢
      • 2016-03-27
      • 2019-08-13
      • 1970-01-01
      • 2020-03-15
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      相关资源
      最近更新 更多