我需要建议如何将数组存储到数据库 . 例如,我有 name="user_phone[]" 的输入,我想将数据输入到数据库 . 我有一个这样的表格,还有其他输入,但我只复制一个:

{!! Form::open([route('some.router')]) !!}

{{ Form::label(null, 'Phone') }}

{{ Form::text('user_phone[]', null, ['class' => 'form-control'] ) }}

{!! Form::close() !!}

和控制器:

public function postAddOrder(Request $request)

{

$this->validate($request, [

'receipt_date' => 'date|required',

'return_date' => 'date|required',

'user_name' => 'required',

'user_phone' => 'required',

'work_sum' => 'integer|required',

'user_descr' => 'required',

'foruser_descr' => 'required'

]);

$user = new User;

$user = $user->all()->find($request->input('user_name'));

$order = new Order([

'receipt_date' => $request->input('receipt_date'),

'return_date' => $request->input('return_date'),

'user_name' => $user->fio,

'user_phone' => $request->input('user_phone'),

'device' => $request->input('device'),

'work_sum' => $request->input('work_sum'),

'master_name' => $request->input('master_name'),

'user_descr' => $request->input('user_descr'),

'foruser_descr' => $request->input('foruser_descr'),

'type' => $request->input('type'),

'status' => $request->input('status'),

'engineer' => $request->input('engineer'),

'partner' => $request->input('partner'),

'office' => $request->input('office')

]);

$order->save();

return redirect()->route('admin.orders.index');

}

问题是当我提交表单并收到错误时:

htmlentities() expects parameter 1 to be string, array given

我也使用强制转换将数组存储到DB:

/**

* The attributes that should be casted to native types.

*

* @var array

*/

protected $casts = [

'user_phone' => 'array',

];

值正确存储,主要问题是validate()方法没有捕获错误 . 例如,我没有在所需的输入中填充一些数据 . 而不是像错误一样得到错误,我得到错误

htmlentities() expects parameter 1 to be string, array given

当我用数据填充所有输入时一切正常 .

Logo

一站式 AI 云服务平台

更多推荐