Каков наилучший способ выбрать комментарии с данными пользователя и дополнительные с Laravel? - PullRequest
0 голосов
/ 24 сентября 2019

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

Контроллер содержал такой запрос:

 Charging::available()
 ->with('some.ports', 'shares')
 ->find($id);

И я переписал егона такие:

Charging::available()
->with('some.ports', 'shares')
->with('chargingComments.user')
->with('chargingComments.car')
->find($id);

Вот так выглядит ChargingComments модель:

public function comments() {
    return $this->belongsTo(\App\Models\Charging::class);
}

public function user() {
    return $this->belongsTo(\App\Models\User::class);
}

public function car() {
    // here 'id' is the row in the table with users cars
    // 'car_id' is in the table with comments  
    return $this->hasOne(\App\Models\UserCar::class, 'id', 'car_id');
}

Он возвращает мне данные о пользователе каждого комментария и его машине, но, между прочим, я должен как-то ограничитьрезультат до 10 строк.Я пытался добавить

'user' => function($query) {
            return $query->take(10);
        }])

Но это не сработало.

Я уверен, что должен быть лучший способ написать этот код, но не знаю, как

1 Ответ

0 голосов
/ 25 сентября 2019

попробуйте

Charging::with('some.ports', 'shares')->with('chargingComments.user')->with('chargingComments.car')->find($id)->latest()->take(10)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...