目前,我正在laravel 8上研究JWT auth,为了解释我试图直接做什么,我试图在成功验证后将用户数据与关系数据一起发送。请看一下我的代码
//response login "success" with generate "Token"
return response()->json([
'success' => true,
'user' => auth()->guard('api')->user(),
'token' => $token
], 200);enter code here
在这种情况下,api使用用户数据和jwt令牌返回auth条件。但是' user‘=> auth()->guard('api')->user()没有用关系数据返回用户数据。目前,我的用户表与角色表有关系,所以我也希望根据用户数据中的角色id发送角色数据。类似于使用with()函数进行紧急加载。如果您对此有任何提示或解决方案,请帮助我解决这个问题。谢谢你
发布于 2022-02-09 03:46:05
您可以将延迟加载方法用于Laravel模型。
https://laravel.com/docs/8.x/eloquent-relationships#lazy-eager-loading
$user = auth()->guard('api')->user();
$user->load(['relation1', 'relation2']);
return response()->json([
'success' => true,
'user' => $user,
'token' => $token
], 200);
或者,您可以将用户模型的关系添加到模型中,从而始终加载它们。
https://laravel.com/docs/8.x/eloquent-relationships#eager-loading-by-default
class User extends ExtendedClasses
{
/**
* The relationships that should always be loaded.
*
* @var array
*/
protected $with = ['relation1', 'relation2'];
https://stackoverflow.com/questions/71043117
复制相似问题