尝试更新 Laravel 中的寄存器时出现数组到字符串转换错误

Array to string conversion error when trying to update a register in Laravel

我正在查询名为 'interesteds' 的数据库 table 中的一个特定寄存器,并尝试更新它的一些字段(不是全部),但我收到此错误:

Array to string conversion (SQL: update `interesteds` set `updated_at` = 2017-10-04 00:47:00, `address` = adf, `branch` = gaf, `types` = afva, `means` = mail, `flux` = asvas, `size` = sfvfd where `id` = 38)

我的控制器是这样的:

    public function postInterestedDetails()
{
    $details = request()->only(['address', 'branch', 'types', 'means', 'flux', 'size']);
    $email = request()->only(['email']);
    $interested = Interested::where('email', $email)->first()->fill($details);
    $updated = $interested->save();
    return $updated;

}

如果我请求“return $interested”,我可以获得更新的寄存器,但是当我尝试保存它时,出现数组到字符串错误。 "protected $fillable" 已在模型文件中正确设置。我错过了什么吗?

我认为 request()->only(['email']); return 任何数组,所以条件将失败

因此,如果您将 $email = request()->only(['email']); 更改为 $email = request()->email; 那么它将正常工作

已更新 根据您的转储结果 means 是一个数组

"means" => array:1 [▼ 0 => "mail" ]

所以你可以像这样更新

$details = request()->only(['address', 'branch', 'types', 'flux', 'size']);
$details['means']=implode(",",request()->means);