Laravel 包括更新后与模型的关系

我正在使用一个角色包 , 它在我的数据库中存储许多关系数据。 所以有一个 users 和一个 user_roles, 带有外键... 等等...

我正在使用以下代码更新模型 :

    $user = User::findOrFail($id);
    $user->update(request()->all());
    $user->syncRoles(request()->input('roles', []));

我是否可以在 $user 变量上保留 roles 的引用 , 以便在这些代码行运行后使用它们 ?

我问是因为我用的是日志系统在这样的情况下 :

    activity()->on($user)->by(auth()->user())->withProperties([
        'user' => $user,
        'roles' => request()->input('roles'),
    ])->log('Updated User');

我想将其浓缩为 :

    activity()->on($user)->by(auth()->user())->withProperties($user)->log('Updated User');

EN From: Laravel include relationships with model after update

7 Comments

  1. 例如 , 使用延迟加载 :

    $user = User::findOrFail($id);
    $roles = $user->roles;
    

    User 模型中 , 您将创建与角色表的 HasMany 关系。

    热切装载 :

    $user = User::with('roles')->findOrFail($id);
    
    1. 我更新了 OP... , 有没有可能将它们都保存在同一个变量中 ?
  2. 在 user. php模型中添加关系 :

    public function roles(){
        return $this->hasMany(Role::class);
    }
    

    现在只要在代码中调用它就可以得到这样的角色 :

    $aUser = User::with('roles')->find($id);
    $roles = $aUser->roles;
    
  3. 您需要从数据库中刷新模型数据。 例如

    $user = $user->fresh('roles');
    

More articles:

  • 如何访问模型与条件有很多关系?
  • 模型关系和路径得到模型 id
  • 拉勒维尔访问归属者模型有很多关系
  • Larav案中的用户跟踪 / 订阅关系模型
  • 拉勒维尔 - 多重关系
  • 试图获取拉勒维尔关系中的非对象属性
  • 相同的前两次关键时间指一个模型
  • 如何添加自定义自动增量主键 Laravel 的模型
  • 5.2 保存关系属于一人多
  • Laravel 4, 如何防止 Eliquent 模型处理某些属性?
  • 在 WHMCS 版本 6 中添加自定义 E枇杷模型
  • 拉拉瓦尔更新数据质量分配加 ch
  • 5.5哈森尼通过关系
  • Laravel 5.3 - 保存后无法检索模型 ID
  • 如何分割一个用户模型查询
  • 使用多个表组合成一个的 Laravel Evient 模型 ( 无单独模型 )
  • Laravel : 大众更新
  • 拉拉沃尔·艾维茨 : 如何排序相关模型的结果 ?
  • 连接 Laravel 的数据库字段和模型属性
  • 拉勒文关系集迭代返回布尔值
  • 在更新到 Laravel 5.3 后播种时 , 调用未定义的方法 Illuminate\ Database\ Query / Builder::: 列表
  • 方法调用 $模型>关系()和$模型>关系之间的差异;
  • 更新 Laravel 4 中的枢轴表额外列
  • 无法使用 Evient 删除 Laravel 中的模型
  • 在 laravel 多态性关系中未发现列
  • 拉拉拉瓦尔雄辩多关系搜索专栏
  • 说明如何在 Laravel 的 Evient ORM 中建立一对多关系
  • 拉拉维亚雄辩的关系 3 个模型
  • 为什么不删除拉拉威尔模型 ?
  • 在 Laravel 中调用连接或分离时 , 如何使"枢轴表"模型触发保存/保存的模型事件?