【发布时间】:2018-10-31 13:43:58
【问题描述】:
我的用户汽车在用户和汽车之间具有多对多的关系。我正在使用护照,一切正常(登录、注册等)在我的用户模型中,我有如下方法
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;
但它不起作用,所以有人可以指导我如何解决这个问题。不胜感激,非常感谢。
【问题讨论】:
-
什么是 CarResource?
-
@KyleWardle 这是 API 的 API 资源
-
我相信你应该使用
return new CarResource($User->cars);或return new CarResource($User->cars()->get()); -
@cbaconnier 我尝试了这两种方法,但都不适合我
-
正如@KyleWardle 所说,根据您的代码,您的
$User不能拥有汽车。您需要获得一个已经拥有至少一个用户的用户来证明它有效。
标签: php laravel laravel-5.6