我在一个名为'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”在模型文件中正确设置。我错过了什么吗?
答案 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);