#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. Кто-нибудь, ответьте, пожалуйста!!