Задача у меня вывести все контакты, отсортированные в алфавитном порядке по фирмам, не понимаю как это сделать.
Непонятна задача. Нужно отсортировать контакты, или фирмы?
В общем не важно что нужно сортировать, для общего случая (сортировки и контактов и фирм):
public function firm()
{
return $this->belongsTo('App\firm')->orderBy('field', 'asc');
}
public function contacts()
{
return $this->hasMany('App\App\Contact')->orderBy('field', 'asc');
}
Где
field и
asc соответственно - поле для сортировки и направление.
Можно например так:
$firms = Firm::orderBy('field', 'asc')->get();
foreach ($firms as $firm) {
$contact = $firm->contacts()->orderBy('field', 'asc')->get();
}
Или даже так:
$firms = Firm::with('contacts' => function ($q)
{
return $q->orderBy('field', 'asc');
})->get();
Вариантов масса. Зависит от задачи.