[英]Laravel 5.6 Access auth()->user() in controller constructor?
[英]How to access model method based on api auth in laravel 5.6?
我的用户汽车在用户和汽车之间具有多对多的关系。 我正在使用护照并且一切正常(登录,注册等)在我的用户模型中有一个如下所示的方法
public function cars()
{
return $this->belongsToMany(Car::class, 'users_cars', 'user_id', 'car_id');
}
我也有工作正常的 API 身份验证路由
Route::group([
'prefix' => 'auth'
], function () {
Route::post('login', 'AuthController@login');
Route::post('signup', 'AuthController@signup');
Route::group([
'middleware' => 'auth:api'
], function() {
Route::get('logout', 'AuthController@logout');
Route::get('user', 'AuthController@user');
Route::get('car-list','CarController@carList');
});
});
在 CarController 中,我试图根据身份验证登录user_id
获取用户汽车,如下所示
public function carList(){
$User = new User();
return new CarResource($User->cars());
}
我也将 API 资源用于 API
use App\Http\Resources\Car as CarResource;
但它不起作用,所以有人可以指导我如何解决这个问题。 我将不胜感激,非常感谢。
在CarController
您正在实例化一个新的User
对象。 他们永远不会有任何汽车。 如果您想获取登录用户的所有汽车,您需要执行以下操作:
public function carList(){
$User = User::with('cars')->findOrFail(Auth::id());
return new CarResource($User->cars);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.