Вызов неопределенного отношения [] в модели []

#php #laravel #laravel-5 #laravel-5.8

#php #laravel #laravel-5 #laravel-5.8

Вопрос:

Я установил связь hasOne в своей модели, и она отлично работает со следующим запросом в драйвере контроллера:

 $drivers = Driver::with('vehicleInfo')->first()->toArray();
 

Модель драйвера:

    <?php

namespace App;

use IlluminateDatabaseEloquentModel;

class Driver extends Model
{

    // from_location_id
    public function vehicleInfo()
    {
        return $this->hasOne('AppVehicle','id','vehicle_id');
    }

}
 

Но когда я пытаюсь использовать тот же код в AuthController, который генерируется Laravel Auth, он выдает мне ошибку неопределенного отношения.

Я включил модель в AuthController. Который выглядит следующим образом:

     <?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use Validator;
use IlluminateFoundationValidationValidatesRequests;
use CarbonCarbon;
use AppUser;
use AppRole;
use AppDriver; 

class AuthController extends Controller
{

    public function login(Request $request)
    {
        $request->validate([
            'mobile' => 'required|string',
            'password' => 'required|string',
            'remember_me' => 'boolean'
        ]);
        $credentials = request(['mobile', 'password']);
        if(!Auth::attempt($credentials))
            return response()->json([
                'message' => 'Unauthorized'
            ], 401);

        $user = $request->user();
        // print_r($user);
        $tokenResult = $user->createToken('Personal Access Token');
        $token = $tokenResult->token;

        if ($request->remember_me)
            $token->expires_at = Carbon::now()->addWeeks(1);

        $token->save();

        $user_details = User::find($user->id);
        if($user_details->actual_user_id>0){
            // find driver details
            // var_dump(Driver::with('vehicleInfo'));
            $driver_details = Driver::with('vehicleInfo')->first()->toArray();
            // var_dump($driver_details);
        }else{
            $driver_details = "";
        }

        return response()->json([
            'access_token' => $tokenResult->accessToken,
            'token_type' => 'Bearer',
            'expires_at' => Carbon::parse(
                $tokenResult->token->expires_at
            )->toDateTimeString(),
            'user_details'=>$user_details->toArray(),
            'driver_details'=>$driver_details
        ]);
    }
}
 

Мои отношения являются общедоступными.

Пожалуйста, помогите.

Комментарии:

1. Могу ли я посмотреть ваш код AuthController, пожалуйста? Кроме того, могу ли я узнать вашу версию Laravel, пожалуйста?

2. Смотрите Обновленный вопрос

3. не могли бы вы удалить toArray и проверить, работает ли он?

4. уже пробовал, не работает

5. Кто-нибудь, ответьте, пожалуйста!!