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']))
我正在构建一个显示几个用户的任务方案,每个用户在一周内获得自己的任务列表。 任务将显示在一个字段中,因此用户可以随时更改它。我还使用动态表单在一周内为用户添加或删除任务。 对于动态表单,我为每个表单使用相同的名称。
我的代码如下所示:
<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']))