【发布时间】:2016-04-20 08:23:11
【问题描述】:
我是 laravel 的绝对初学者。 当我尝试更新数据数组时,我正在处理错误“preg_replace(): Parameter mismatch, pattern is a string while replacement is an array”。
有人知道解决这个错误的方法吗? 如果您需要更多信息,请留下您的 cmets。
任何建议将不胜感激。提前致谢!
LogsController.php
public function update(CreateLogRequest $request, $course_id){
$count = count($request->input('weeks'));
$input = $request->all();
$logs = array();
for ($i = 0; $i < $count; $i++){
if($input['weeks'][$i]){
array_push($logs, array(
'user_id' => \Auth::user()->id,
'course_id' => $course_id,
'weeks' => $i + 1,
'work_description' => $input['work_description'][$i],
'instructor_comments' => $input['instructor_comments'][$i],
'status' => $input['status'][$i],
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
));
}
}
$log->update($logs);
return redirect('/student/home');
}
当我输入一个代码 dd($logs) 时,结果如下。
array:2 [▼
0 => array:8 [▼
"user_id" => "1"
"course_id" => "39"
"weeks" => 1
"work_description" => "fadfad"
"instructor_comments" => "fdasfda"
"status" => "accepted"
"created_at" => Carbon {#219 ▶}
"updated_at" => Carbon {#212 ▶}
]
1 => array:8 [▼
"user_id" => "1"
"course_id" => "39"
"weeks" => 2
"work_description" => "fadsfad"
"instructor_comments" => "fdasfdasfad"
"status" => "accepted"
"created_at" => Carbon {#218 ▶}
"updated_at" => Carbon {#222 ▶}
]
]
Log_edit.blade.php
{!! Form::hidden('course_id', $course->id) !!}
@foreach($logs as $log)
<tbody>
<tr>
<td>
{{ $log->weeks }}
{!! Form::hidden('weeks[]', $log->weeks) !!}
</td>
<td> {!! Form::textarea('work_description[]', $log->work_description) !!} </td>
<td> {!! Form::textarea('instructor_comments[]', $jlog->instructor_comments) !!} </td>
<td> {!! Form::select('status[]',
array('accepted' => 'accepted',
'pending' => 'pending',
'declined' => 'declined',
), $log->status) !!}
</td>
</tr>
@endforeach
</tbody>
【问题讨论】:
-
周数是否与日志存储在单独的表中?
-
不,同一张桌子