Сортировать красноречивую модель с отношениями Laravel - PullRequest
0 голосов
/ 08 марта 2020

У меня есть модель, которую я хочу отсортировать на основе свойства отношения.

  1. Первая модель "DeviceType":
public function make()
{
    return $this->hasMany(DeviceMake::class);
}
Вторая модель: «DeviceMake»:
public function type()
{
    return $this->hasOne(DeviceType::class, 'id', 'device_type_id');
}

public function model()
{
    return $this->hasMany(DeviceModel::class);
}
Контроллер:
$type = DeviceType::with(['make'])->where('id', '=', $device_type_id)->first();
Имя таблицы - device_makes, и я хочу отсортировать ее по name. Как я могу это сделать?

1 Ответ

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

А как насчет?

$type = DeviceType::with(['make' => function ($query) { 
    $query->orderBy('name', 'asc');
}])->where('id', '=', $device_type_id)->first();

Обратите внимание, что first () вернет только первую модель, соответствующую вашему запросу, тогда как get () вернет все из них.

Возможно, вы можно попробовать это вместо этого в вашей модели:

public function make() { 
    return $this->hasMany(DeviceMake::class)->orderBy('name', 'asc'); 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...