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

时间:2017-10-04 16:28:07

标签: php laravel-5.3 mariadb

我在一个名为'interesteds'的db表中查询一个特定的寄存器,并尝试更新它的一些字段(不是全部),但是我收到了这个错误:

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 $ interest”我可以获得更新的寄存器,但是当我尝试保存它时,会出现数组到字符串错误。 “protected $ fillable”在模型文件中正确设置。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我认为request()->only(['email']);会返回任何数组,因此condtion将会失败

因此,如果您将$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);