blog
user
29 042020

Laravel Eloquent provides very usefull tools to run simple and clean database queries. Sometimes it is nessesary to order requested records by related fields. When you just want to just get model using sorting options you can use

$data = Primarymodel::orderBy('column')->get();

To get records ordered by related model column you have to build more complicated query. First of all related model has to be defined in model class by

class Primarymodel extends Model
{

   public $belongsTo = ['relatedmodel','Acme\Plugin\Model\Relatedmodel'];

}

I found solution on stackoverflow.com which is very helpful many times. The first solution does't work. I don't know why it is marked as useful by over 200 users. Anyway query has to be joined to related model and look like this:

$data = Primarymodel::join('relatedmodeltable', 'primarymodeltable.relatedmodeltable_id','=','relatedmodeltable.id')
        ->orderBy('relatedmodeltable.column')->get();

 

 Thats it.

 

Nasze newsy

Śledź nasze aktualności.

blog
user
16 042024

Wiosenne pożądki na serwerze

Wiosenne uporządkowanie zasobów na serwerze.

blog
user
13 072023

Iteracja dużej ilości danych w Laravel Eloquent

Jak poprawnie iterować dużą ilość danych w Laravel Eloquent

blog
user
29 032023

Wtyczka do Octobercms blokująca ip

Nowa wtyczka do Octobercms zwiększająca bezpieczeństwo stron www.

logo

Masz pytania? Skontaktuj się