Laravel:preg_replace():参数不匹配,pattern 是一个字符串,而replacement 是一个数组 [英] Laravel: preg_replace(): Parameter mismatch, pattern is a string while replacement is an array

查看:20
本文介绍了Laravel:preg_replace():参数不匹配,pattern 是一个字符串,而replacement 是一个数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将我的结果保存在数据库中,但我收到一个错误异常.

I want to save my results in the database but im getting an error exception.

在我看来,我有一个单选按钮(数组),可以获取每个学生的结果,出席、迟到、缺席、其他

In my view I have a radio button(array) that gets the result of each student which is present,late,absent,others

这是我的看法

  <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();

推荐答案

由于您选择的命名约定,您的单选输入 result 将返回一个数组.

Your radio input result will return an array, due to the naming convention you have chosen.

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

If you wish to save the singular value of the input result, use the following format.

查看代码:

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

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

If you are expecting multiple values in an array, then you should be looping through the code, and saving each individually:

控制器代码:

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();
}

建议:

如果您希望在同一个表单上保存多个学生的信息,下面的建议会很有用.

If you wish to save several student's information on the same form, the suggestion below will work great.

查看代码:

<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();
}

这篇关于Laravel:preg_replace():参数不匹配,pattern 是一个字符串,而replacement 是一个数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆