我正在尝试插入数组,但出现错误:-
preg_match() expects parameter 2 to be string, array given
我的表格如下:
{!! Form::text('description[]',null,['class' => 'input-field input-sm','v-model'=>'row.description']) !!}
{!! Form::text('log_time[]',null,['class' => 'input-field input-sm','v-model'=>'row.log_time']) !!}
我的 Controller 存储功能:
$this->validate($request, $this->rules);
$data = array();
foreach($request->description as $key=>$value){
$data[]=[
'description'=> $value,
'log_time'=> $request->log_time[$key],
'call_id'=>$call->id,
];
}
PortLog::create($data);
当我检查 dd($data)
array:2 [▼
0 => array:3 [▼
"description" => "des"
"log_time" => ""
"call_id" => 16
]
1 => array:3 [▼
"description" => ""
"log_time" => "hi"
"call_id" => 16
]
]
我做错了什么?
最佳答案
您似乎正试图在一个语句中插入多个 port_logs
。但是,create()
方法仅用于创建模型的一个实例。您要么需要使用 insert()
语句,要么通过 $data
将代码更新为 foreach
并发出多个 create( )
语句。
PortLog::insert($data);
// or
foreach($data as $row) {
PortLog::create($row);
}
如果你只想插入数据,又不想实例化一堆 PortLog
实例,那么 insert()
方法就是去。如果您需要为每一行实例化一个新的 PortLog
实例,那么 create()
方法就是要走的路。
关于php - preg_match() 期望参数 2 是字符串,数组给定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39158318/