在Laravel中发布/输入动态字段

时间:2015-10-21 13:05:10

标签: php mysql laravel dynamic

我正在构建一个任务计划,其中显示一些用户,并且每个用户在一周内获得他们自己的任务列表。 任务将显示在字段中,因此用户始终可以更改此任务。我也在一周内使用动态表单为用户添加或删除任务。 对于动态表单,我为每个表单使用相同的名称。

我的代码如下所示:

<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>

当用户添加动态表单时,它将被放置在第一个内部类=“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!');

但是当我尝试时,我收到以下错误:

  

插入值列表与列列表不匹配:1136列数与第1行的值计数不匹配

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

1 个答案:

答案 0 :(得分:1)

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

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