Laravel 授权用户添加自定义数据
Laravel Auth User add custom data
我们目前正在开发一个 Google 登录 Laravel 与 Socialite 的应用程序。我们有一个获得许可号 ex 的 Auth 用户。 264. 我们制作了一个函数,其中 returns 一个包含所有二进制数的数组,此权限编号已关闭。
因为每次加载页面时调用此函数可能有点繁重,我们考虑在创建 Auth::user() 时添加一次。我们想在模型中添加一个自定义构造函数,但我们不能让它工作。
function __construct($attributes = array()) {
parent::__construct($attributes);
$this->permissionsArray = PermissionHelper::permissionConverter($this->permissions);
}
但是我们无法让它工作,$this
调用这个函数时没有值。
TLDR;
在创建 Auth 用户后,我想直接调用 permissionConverter 函数并将数据保存给用户,以便我们可以更频繁地使用它。有关如何执行此操作的任何建议?
编辑:我今天检查了所有答案,其中一个成功了,但我假设 Laravel 将经过身份验证的用户放入 SESSION 或其他内容中。我发现它没有,它会在每次请求时从数据库中获取所有数据。不幸的是,我们无法满足我们的要求。所以我只需要重构脚本并使其尽可能高效(尽管对于经验不足的程序员来说它变得不太可读)。
感谢您的帮助:D
也许你可以使用这个解决方案?
在 User
Eloquent 模型上创建一个 boot
方法
class User extends BaseModel {
public static function boot() {
static::creating(function($model) {
$model->permissionsArray = PermissionHelper::permissionConverter($model->permissions);
});
// do the same for update (updating) if necessary
}
}
你就不能用这个方法吗?
如果是新用户:
$user = new User(); // or User:create(['...']) directly
$user->name = 'toto';
// and all other data
或
$user = Auth::user();
然后
$user->permissionsArray = PermissionHelper::permissionConverter($user->permissions);
$user->save();
我们目前正在开发一个 Google 登录 Laravel 与 Socialite 的应用程序。我们有一个获得许可号 ex 的 Auth 用户。 264. 我们制作了一个函数,其中 returns 一个包含所有二进制数的数组,此权限编号已关闭。
因为每次加载页面时调用此函数可能有点繁重,我们考虑在创建 Auth::user() 时添加一次。我们想在模型中添加一个自定义构造函数,但我们不能让它工作。
function __construct($attributes = array()) {
parent::__construct($attributes);
$this->permissionsArray = PermissionHelper::permissionConverter($this->permissions);
}
但是我们无法让它工作,$this
调用这个函数时没有值。
TLDR; 在创建 Auth 用户后,我想直接调用 permissionConverter 函数并将数据保存给用户,以便我们可以更频繁地使用它。有关如何执行此操作的任何建议?
编辑:我今天检查了所有答案,其中一个成功了,但我假设 Laravel 将经过身份验证的用户放入 SESSION 或其他内容中。我发现它没有,它会在每次请求时从数据库中获取所有数据。不幸的是,我们无法满足我们的要求。所以我只需要重构脚本并使其尽可能高效(尽管对于经验不足的程序员来说它变得不太可读)。
感谢您的帮助:D
也许你可以使用这个解决方案?
在 User
Eloquent 模型上创建一个 boot
方法
class User extends BaseModel {
public static function boot() {
static::creating(function($model) {
$model->permissionsArray = PermissionHelper::permissionConverter($model->permissions);
});
// do the same for update (updating) if necessary
}
}
你就不能用这个方法吗?
如果是新用户:
$user = new User(); // or User:create(['...']) directly
$user->name = 'toto';
// and all other data
或
$user = Auth::user();
然后
$user->permissionsArray = PermissionHelper::permissionConverter($user->permissions);
$user->save();