Laravel - Как извлечь из дочерних записей внутри родительского массива? - PullRequest
0 голосов
/ 27 марта 2020

транспортных средств (родительский элемент car_details)

id - some_column1

1 - some_value

2 - some_value

...

автомобили (Родитель car_details):

id - some_column2

1 - Benz

2 - BMW

...

car_details (дочерний):

id - vehicle_id - car_id - some_column3

1 - 1 - 1 - some_value

2 - 1 - 1 - some_value

3 - 1 - 2 - some_value

4 - 1 - 2 - some_value

class Vehicle extends Model {
    public function carDetails() {
        return $this->hasMany('App\CarDetail');
    }
}

class CarController extends Controller {
    $carDetails = Vehicle::with('carDetails')->first();
}

Теперь в моем представлении лезвия я хочу поочередно просматривать машины и детали своего ребенка:

First Car:
@foreach($carDetails as $carDetail)
    <ul>
        <li>Car: {{$carDetail->car->some_column2}}</li>
        <li>Car Detail: {{$carDetail->some_column3}}</li>
    </ul>
@endforeach
Second Car:
@foreach($carDetails as $carDetail)
    <ul>
        <li>Car: {{$carDetail->car->some_column2}}</li>
        <li>Car Detail: {{$carDetail->some_column3}}</li>
    </ul>
@endforeach
//So on...

Проблема в том, что детали автомобиля отображаются непрерывно, однако я хочу отделить информацию о первой машине от информации о второй и автомобили, показываемые после этого.

Как мне этого добиться?

1 Ответ

0 голосов
/ 27 марта 2020

Я нашел это:)

Я использовал groupBy не в SQL, а после извлечения данных.

$vehicle = Vehicle::find($id);
$vehicle->cars = $vehicle->cars->groupBy('car_id');

В любом случае спасибо

...