У меня есть следующие модели: у пользователя есть сотрудники, а сотрудник - это тип человека. Если я пытаюсь получить данные о сотрудниках и сотрудниках пользователя в контроллере, я набираю: auth () -> user () -> employee () -> with ('self') -> get () Пример: UserКласс
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable
{
use Notifiable, HasApiTokens;
public function employees()
{
return $this->hasMany(Employee::class, 'owner_id');
}
}
Класс сотрудника
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Employee extends Model
{
protected $guarded = ['id'];
public function self()
{
return $this->hasOne(Person::class, 'id', 'person_id');
}
public function owner()
{
return $this->belongsTo(User::class);
}
}
Персона Класс
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Person extends Model
{
protected $guarded = ['id'];
public function owner()
{
return $this->belongsTo(User::class);
}
}
[
{
"id": 1,
"type": "per_day",
"description": null,
"salary": "7082.00",
"self": {
"name": "Ali",
"phone": "0523037298",
"email": "schaefer.dayton@hotmail.com"
}
}
]
Я хочу извлечь данные из себя в родителя, как:
[
{
"id": 1,
"type": "per_day",
"description": null,
"salary": "7082.00",
"name": "Ali",
"phone": "0523037298",
"email": "schaefer.dayton@hotmail.com"
}
]