PHP / Laravel - объединить результат (отношение модели) - PullRequest
0 голосов
/ 12 ноября 2018

Прямо сейчас у меня есть данные ниже:

First

Second

Теперь проблема свыше, это то, что он создает новый массив для каждой записи в моей базе данных.

Я бы очень хотел получить ниже вывод:

Third

Fourth

Разница в том, что:

  • Все одинаковые маршруты должны быть сгруппированы.Таким образом, если Route совпадает, он должен быть в том же списке маршрутов.
  • Если Carrier в маршруте совпадает, то он должен быть в этом маршруте и перевозчик

  • Если маршрут другой, он должен начать новый список (** Маршрут: от XYZ до XYZ)

Текущий код:

Controller.php:

public function show()
    {
        $routes = Routes::where('id', '>=', 1)
        ->with('routeStops', 'getVessel')
        ->get()
        ->toArray();

        foreach ($routes as $key => $value) {
            echo '<h2>Route: ' . $value['origin'] . ' to ' . $value['destination'] . '</h2>';
            $carrier = Carriers::where('id', $value['get_vessel']['carriers_id'])->first()->name;
            echo 'Carrier: ' . $carrier . '';
            dump($value);
        }

    }

Это мои модели:

Routes.php

/**
 * Get the route stop associated with this route.
 */
public function routeStops()
{
    return $this->hasMany('App\RouteStops', 'route_id');
}

/**
* Get the vessel record associated with this route.
*/
public function getVessel()
{
    return $this->belongsTo('App\Vessels', 'vessel_id');
}

Как мне это сделатьЯ добился 2-го желаемого выхода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...