Laravel:preg_replace():参数不匹配,pattern是一个字符串,而replacement是一个数组

时间:2015-04-14 06:14:44

标签: laravel laravel-4 eloquent laravel-5

我想将结果保存在数据库中,但我得到错误异常。

在我看来,我有一个单选按钮(数组),可以得到每个学生现在,迟到,缺席,其他

的结果

这是我的观点

  <td>{{ $users->student_id  }} </td>
  <td>{{ $users->student_firstname }} {{ $users->student_lastname }}</td> 
  <td>{{ Form::radio('result['.$users->student_id.']', 'present' , true) }}</td>
  <td>{{ Form::radio('result['.$users->student_id.']', 'late' ) }}</td>
  <td>{{ Form::radio('result['.$users->student_id.']', 'absent') }}</td>
  <td>{{ Form::radio('result['.$users->student_id.']', 'others') }}</td>

这是我的控制器

  $attendance = new Attendances();
  $attendance->status = Input::get('result');
  $attendance->comment = Input::get('comment');
  $attendance->save();

2 个答案:

答案 0 :(得分:13)

由于您选择的命名惯例,您的广播输入result将返回一个数组。

如果您想保存输入result的奇异值,请使用以下格式。

查看代码:

<td>{{ Form::radio('result', 'present' , true) }}</td>
<td>{{ Form::radio('result', 'late') }}</td>
<td>{{ Form::radio('result', 'absent')   }}</td>
<td>{{ Form::radio('result', 'others')  }}</td>

如果您希望数组中有多个值,那么您应该遍历代码并单独保存每个值:

控制器代码:

foreach (Input::get('result') as $studentId=>$value)
{
     $attendance = new Attendances();
     $attendance->status = $value;
     $attendance->comment = Input::get('comment');
     //We should save the student id somewhere.
     $attendance->student_id = $studentId;
     $attendance->save();
}

<强>建议:

如果您希望在同一表格中保存多个学生的信息,下面的建议将会很有效。

查看代码:

<td>{{ $users->student_id  }} </td>
<td>{{ $users->student_firstname }} {{ $users->student_lastname }}</td> 
<td>{{ Form::radio('student['.$users->student_id.'][status]', 'present' , true) }}</td>
<td>{{ Form::radio('student['.$users->student_id.'][status]', 'late' ) }}</td>
<td>{{ Form::radio('student['.$users->student_id.'][status]', 'absent') }}</td>
<td>{{ Form::radio('student['.$users->student_id.'][status]', 'others') }}</td>
<td>{{ Form::text('student['.$users->student_id.'][comment]'}}</td>

用于保存的控制器代码

//We loop through each student and save their attendance.
foreach (Input::get('student') as $studentId=>$data)
{
     $attendance = new Attendances();
     $attendance->status = $data['status'];
     $attendance->comment = $data['comment'];
     //We should save the student id somewhere.
     $attendance->student_id = $studentId;
     $attendance->save();
}

答案 1 :(得分:0)

我有一个类似的错误,使用

$attendance->fill(array with non-existing columns);

设置不存在的列值,所以在调用

$attendance->save();

之后,它会抛出该错误