Model :: firstOrNew(['attribute'=> $ value])抛出“数组到字符串转换”异常

时间:2019-04-16 17:47:52

标签: php laravel eloquent laravel-5.7

我正在为此使用Laravel 5.7 PHP框架。 我正在根据客户的电子邮件地址存储他们的数据。客户数据的“订单”字段为JSON类型。每次客户使用电子邮件下订单时,我要检查该电子邮件是否存在记录,如果存在,它将从该记录中提取订单JSON并添加新订单,如果不存在,则会创建一个新模型创造新记录。

我得到以下异常:“数组到字符串的转换”。跟踪时,我发现它来自遵循Laravel 5.7文档约定的以下代码行:

$client_data = ClientData::firstOrNew(['email' => $request->email]);

这是我在ClientData模型中所拥有的:

protected $table = ['client_data'];
protected $guarded = ['created_at'];

我验证了$request->email确实是一个包含电子邮件地址的字符串。

我也用下面的代码行尝试过,但是抛出了同样的异常:

$client_data = ClientData::where('email', $request->email)->first() ?: new ClientData(['email' => $request->email]);

1 个答案:

答案 0 :(得分:0)

受保护的$ table = ['client_data'];我认为不应该是数组,而是字符串。