【问题标题】:Update database table column - Laravel更新数据库表列 - Laravel
【发布时间】:2018-10-25 11:47:16
【问题描述】:

我正在使用 spatie 为用户角色分配和授予权限。

我需要更新model_has_roles 表中的role_id 列。

我尝试使用 eloquent,但不幸的是,在 spatie 迁移下创建的表没有模型。

现在我正在使用下面的函数来更新:

    $user_role = DB::table('model_has_roles')
        ->where('model_id', '=', $request->userid)  
        ->select('model_has_roles.*')
        ->get();

    $user_role->role_id = $request->userid;
    $user_role->save();

但这是说"Method save does not exist"

关于如何更新数据库列的任何建议?

【问题讨论】:

  • DB::table()->get() 返回 stdClass 对象,它们没有方法。您是否阅读过这里的文档:github.com/spatie/…
  • 那我怎么写更新查询呢?
  • 编写更新查询...如果您不使用 Eloquent 模型,您将无法访问 ORM 方法。可能希望确保您通读 Laravel 文档和 spatie 权限文档,以便您更了解自己在做什么。

标签: laravel edit


【解决方案1】:

由于没有 Eloquent 模型,因此不能使用 @Devon 在 cmets 中所说的 ORM 方法。我使用了下面的更新查询,效果很好。

DB::table('model_has_roles')
->where('model_id', $request->userid)
->update(['role_id' =>  $request->editusertype]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多