我有用户用车,在用户和汽车之间有许多关系。我正在使用护照,并且一切正常(登录,注册等),在我的用户模型中,我的方法如下所示:
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资源
use App\Http\Resources\Car as CarResource;
但是它不起作用,所以有人可以指导我如何解决此问题。非常感谢,谢谢。
答案 0 :(得分:1)
在CarController
中,您将实例化一个新的User
对象。他们永远不会有任何汽车。如果要获取已登录用户的所有汽车,则需要执行以下操作:
public function carList(){
$User = User::with('cars')->findOrFail(Auth::id());
return new CarResource($User->cars);
}