Как получить доступ к методу модели на основе API-аутентификации в Laravel 5.6? - PullRequest
0 голосов
/ 31 октября 2018

У меня есть пользовательские автомобили, имеющие много-много отношений между пользователями и автомобилями. Я использую паспорт, и все работает правильно (вход, регистрация и т. Д.). У меня есть метод, описанный ниже в Модели пользователей

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;

Но это не работает, так что кто-то может мне помочь, как решить проблему. Буду признателен, большое спасибо.

1 Ответ

0 голосов
/ 31 октября 2018

В CarController вы создаете новый объект User. У них никогда не будет автомобилей. Если вы хотите получить все автомобили, которые вошли в систему пользователя, вам нужно будет сделать что-то вроде следующего:

public function carList(){
    $User = User::with('cars')->findOrFail(Auth::id());
    return new CarResource($User->cars);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...