php - preg_match() 期望参数 2 是字符串,数组给定错误

标签 php arrays laravel foreach

我正在尝试插入数组,但出现错误:-

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/

相关文章:

php - Yii2 Active record 如何创建 mongo 模型之间的关系

php - 从服务器加载 JS 配置?

java - 打印格式化数组

javascript - Array.isArray() 不适用于 NodeList。还有其他选择吗?

php - PDOException SQLSTATE[HY000] [2002] 没有这样的文件或目录

php - mysql 结果返回 ?(问号)而不是 Ö 等

PHP 和 HTML - 在用户登录时隐藏 <form>

在 html 元素中过滤文本的 JavaScript 问题

javascript - [Vue警告] :Property or method is not defined on the instance but referenced during render

php - Laravel 5.2 如何在同一行显示成员列表和他/她的组(一对多(或多对多)数据显示)