首页 > 解决方案 > 刀片 laravel 在隐藏的输入中获取最新的 id

问题描述

每个组都有几个子组。

我有这样的filters表格。

关注

我有一张filters桌子。

public function up()
{
    Schema::create('filters', function (Blueprint $table) {
        $table->id();
        $table->foreignId('category_id')->constrained()->cascadeOnDelete();
        $table->integer('parent_id');
        $table->string('name')->nullable();
        $table->string('latin')->nullable();
        $table->smallInteger('field')->nullable();
        $table->string('checkbox_name')->nullable();
        $table->string('color_name')->nullable();
        $table->string('color_code')->nullable();
        $table->timestamps();
    });
}

创建.blade.php

<script>
    $('#addGroup').click(function () {
        count++;
        '<input type="text" id="name" class="form-control" name="filters['+count+'][name]">'+
        '<input type="text" id="latin" class="form-control" name="filters['+count+'][latin]">'+
         '<select id="field" class="form-select field" name="filters['+count+'][field]">'+
            '<option value="1">Check Box</option>'+
            '<option value="2">Color</option>'+
         '</select>'+
    });

    $('#addSubGroup').click(function () {
        count++;
        '<input type="text" id="checkbox_name" class="form-control" name="filters['+count+'][checkbox_name][]">' +
        '<input type="text" id="color_name" class="form-control" name="filters['+count+'][color_name][]">'+
         '<input type="text" id="color_code" class="form-control" name="filters['+count+'][color_code][]">'+
    });
</script>

如何保存checkbox_namecolor_namecolor_code

public function store(Request $request)
{
    $filters = collect([]);
    if ($request->filters) {
        foreach ($request->filters as $filter) {
            if ($filter['name'] != null && $filter['field'] != null) {
                $model = Filter::updateOrCreate([
                    'id' => $request[0],
                ], [
                    'name' => $filter['name'],
                    'latin' => $filter['latin'],
                    'field' => $filter['field'],
                    'category_id' => $request->category_id,
                    'parent_id' => 0,
                ]);
                $filters->push($model);
            }
        }
    }
    Filter::whereNotIn('id', $filters->pluck('id'))->delete();
    return redirect()->back();
}

我在数据库中看到,但checkbox_name,color_namecolor_code, 是空白的。

我的问题

如何将parent_id每个子组保存到id组中。

我想将所有数据保存在过滤器表中。我不想将数据保存在多个表中。

当我添加方法dd时。store

public function store(Request $request)
{
    dd($request->all());

我看到这个消息。

dd

到目前为止没有问题。只是存储呢?

标签: phplaravel

解决方案


推荐阅读