php - 如何在 Laravel 上正确更新模型?方法 Illuminate\Database\Eloquent\Collection::update 不存在

标签 php laravel laravel-5 eloquent

我为用户创建了一个页面来更新他的公司信息,创建用户时所有公司的默认值为空。当用户填写信息时,出现此错误:

 Method Illuminate\Database\Eloquent\Collection::update does not exist 

我确定这个错误是因为我的 CompanyController@edit

     public function edit(Request $request)
{
    $this->validate($request, [
        'company_name' => 'alpha|max:50',
        'phone' => 'integer|max:50',
        'gst_hst_number' => 'integer|max:50',
        'country' => 'alpha|max:50',
    ]);

    $companies = Company::where('id', Auth::user()->id)->get();

    $companies->update([
        'company_name' => $request->input('company_name'),
        'phone' => $request->input('phone'),
        'gst_hst_number' => $request->input('gst_hst_number'),
        'country' => $request->input('country')
    ]);

    return redirect()->route('company.index')->with('info', 'Company information was updated.');
}

我在这个问题上停留了很长时间,很乐意提供有关如何正确更新我公司模型可填写字段的帮助和信息。

最佳答案

‌如错误消息所述,您正在 collection 上使用更新方法,您必须将选择查询更改为:

$companies = Company::where('id', Auth::user()->id)->first();

因为 get() 方法返回的是一个集合,而不是单个记录。

关于php - 如何在 Laravel 上正确更新模型?方法 Illuminate\Database\Eloquent\Collection::update 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60294705/

相关文章:

php - 如何将我的 codeigniter 项目放到我的主机帐户 (iPage) 上?

php - Laravel 验证邮件预览,渲染验证邮件

php - Laravel 5 目标不可实例化

php - 减少 Laravel 中更新查询的时间(无需 for 循环,对于相同的键和多个值)

laravel - 如何在 Laravel 5.6 中禁用注册新用户

php - 使用php将值插入带有外键的数据库

php - Laravel 5 使用用户输入创建数据库连接

php - 如何从 pinterest 获取所有图钉?仅获得 50 个引脚

php - Laravel 5.1 在其他表中查找带有 project_id 的项目所有者电子邮件

php - Laravel DecryptException-有效负载无效