deadloop
@deadloop
Активно осваиваю PHP

Как связать 4 таблицы?

Добрый Всем. Столкнуля с проблемой. У меня есть таблицы, в контролере есть метод Index
613838beb3894483287706.png

public function index(Request $request, ApiResponse $response)
    {
        $limit = $request->get('limit');
        if (!isset($limit)) $limit = 20;
        $orders = Order::with('equipments')->paginate($limit);
        if (count($orders) > 0) {
            $response->setStatus('OK');
            $response->setMessage('Данные успешно загружины');
            $response->setData(['orders' => $orders]);
        }
        return $response->asJson();
    }


Есть кастомный ответ

class ApiResponse extends Response
{

    public $body = [
        'status' => 'ERROR',
        'message' => 'Произошла ошибка',
    ];

    public function setStatus($value) {
        $this->body['status'] = $value;
    }

    public function setMessage($value) {
        $this->body['message'] = $value;
    }

    public function setData($value) {
        $this->body['data'] = $value;
    }

    public function asJson()
    {
        return response()->json($this->body);
    }
}


Вот какой я получаю ответ:

"data": {
    "orders": {
        "data": [
            "id": 1,
            "title": "Order 1",
            "equipments": [
            	{
            		"id": 1,
            		"title": 'Equipment 1'
            		"pivot": {
            			"wing_id": 1,
            		}
            	}
        ],
        ]
    }
}


Как мне реализовать такой вот результат

Хочу получить так:

"data": {
    "orders": {
        "data": [
            "id": 1,
            "title": "Order 1",
            "equipments": [
            	{
            		"id": 1,
            		"title": 'Equipment 1'
            		"pivot": {
            			"wing": {
            				"id": 1
            				"title": Right
            			}


Model:
public function equipments()
    {
        return $this->belongsToMany(Equipment::class, 'equipment_order')->withPivot([
            'wing_id', 
        ]);
    }
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 1
Всё в документации описано: https://laravel.com/docs/8.x/eloquent-relationship...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы