Laravel красноречивый заказ по подзапросу - PullRequest
0 голосов
/ 10 июня 2019

У меня проблема с упорядочением по столбцам в подзапросе (фамилия, имя).

Я уже пробовал этот код в соответствии с другими постами:

->with(['customer' => function ($query) {
            $query->orderBy("lastname", "asc")
                ->orderBy("firstname", "asc");
        }])

Вот мой полный код,но это не работает.

return Membership::forCompany($companyId)
        ->whereIn('state', ['ATTIVA', 'IN ATTESA DI ESITO', 'DA INVIARE'])
        ->where(function ($query) {
            $query->where('end_date', '>=', Carbon::now()->toDateString())
                ->orWhereNull('end_date');
        })
        ->with('federation')
        ->with(['customer' => function ($query) {
            $query->orderBy("lastname", "asc")
                ->orderBy("firstname", "asc");
        }]);

Вот отношения:

В модели клиента у меня есть:

public function memberships() {
   return $this->hasMany('App\Models\Membership');
}

В модели членства у меня есть:

public function customer() {
    return $this->belongsTo("App\Models\Customer");
}

1 Ответ

3 голосов
/ 11 июня 2019

Попробуйте orderBy() с join(), как:

$memberships = \DB::table("memberships")
                    ->where("company_id", $companyId)
                    ->where(function ($query) {
                        $query->where('end_date', '>=', Carbon::now()->toDateString())
                            ->orWhereNull('end_date');
                    })
                    ->join("customers", "memberships.customer_id", "customers.id")
                    ->select("customers.*", "memberships.*")
                    ->orderBy("customers.lastname", "asc")
                    ->get();

dd($memberships);

Дайте мне знать, если у вас все еще есть проблема. Обратите внимание, код не проверен! так что вам может понадобиться проверить один раз.

...