Veuillez regarder ci-dessous le code.Laravel Orderby ne travaille pas à l'intérieur d'Eloquent oùHas relation?
$serviceNew = CompletedService::selectRaw('gallons_collected as total,account_id,id,service_provider_id,service_id,service_date')
->where("service_id", '1')->where('service_provider_id', $service_privider_id)->whereMonth('service_date', $month)->whereYear('service_date', $year)
->with('account')
->whereHas('account', function($qs) {
$qs->orderBy('restaurant_name', 'DESC');
})
->get();
J'ai plusieurs enregistrements dans « CompletedService » et il est un identifiant parent account_id qui dans le tableau de compte. et j'ai fait avec pour compte.
Déjà ASC et DESC essayés.
Essayez de commander par whereHas mais cela n'a aucun effet sur les enregistrements. Ci-dessous la relation du modèle.
public function account() {
return $this->hasOne('App\Account', 'id', 'account_id');
}
je ne dois pas orderBy dans le modèle parce que j'utilisé cette relation dans le temps multiples et ont besoin que l'ordre par dans cette seule requête.
Et une relations d'enregistrements de service terminées ont un seul compte. Donc, fondamentalement, j'ai besoin de trier les enregistrements de service terminés sur le champ de compte.
Tables
CompletedService
|id| account_id|service_id|service_provider_id|gallons_collected|service_date
|1 | 2 | 1 | 9 | 50 | 2017-08-29
Comptes
| id | restaurant_name|
Toute aide sera appréciée. Merci d'avance!
cette suggestion montre une erreur avec strpos() attend que le paramètre 1 soit une chaîne, array donné –
Vérifiez la mise à jour de réponse et voir le dernier lien mentionné pour plus de détails. –
Avoir une idée de Laravel ou juste poster une réponse pour la réputation. J'ai besoin de réponse pour cela et trouver une erreur dans le code. Voilà pourquoi je suis posté ici. Sinon, je suis également en mesure de trouver une solution de R & D –