Post/input Laravel 中的动态字段

Post/input dynamic fields in Laravel

我正在构建一个显示几个用户的任务方案,每个用户在一周内获得自己的任务列表。 任务将显示在一个字段中,因此用户可以随时更改它。我还使用动态表单在一周内为用户添加或删除任务。 对于动态表单,我为每个表单使用相同的名称。

我的代码如下所示:

<form onLoad="defaultValue" role="form" method="post" action="{{ route('addTasks') }}">
    <input type="hidden" name="uid" value="{{ $user->id }}">
    <input type="hidden" name="week" value="{{$weekshow}}">
    <input type="hidden" name="year" value="{{ $jaar }}">
    <div class="inputs">
        @foreach($tasks as $task)
            @if($task->user_id == $user->id)
                <div class="col-md-9">
                    <input id="taskfield" name="dynamic[]" value="{{ $task->name }}" class="form-control field" onchange="update('tasks',1,'name')" type="text">
                     /* More inputs from dynamic form will be placed here.*/
                </div>
            @endif
        @endforeach
    </div>
    <button name="submit" class="submitbutton btn btn-info submit" value="Opslaan" type="submit">Opslaan</button>
</form>

当用户添加动态表单时,它会被放在class="col-md-9"里面的第一个下面。动态输入为:

<input name="dynamic[]" class="form-control field" type="text">

为了保存数据,我在我的控制器中使用了这个:

$takenvdweek = $_POST['dynamic'];
    foreach($takenvdweek as $taakvdweek) {
        DB::insert('insert into tasks values (name, user_id, week, year)', array($taakvdweek, $_POST['uid'], $_POST['week'], $_POST['year']));
    }

    return redirect()->route('project')->with('message', 'Taken opgeslagen!');

但是当我尝试时,出现以下错误:

Insert value list does not match column list: 1136 Column count doesn't match value count at row 1

我做错了什么,我的代码是否可用?

更改您的 DB::insert,语法不正确:

DB::insert('insert into tasks (name, user_id, week, year) values (?, ?, ?, ?)', array($taakvdweek, $_POST['uid'], $_POST['week'], $_POST['year']))