Как отсортировать массив по объектам по значению внешнего ключа должно быть первым (Laravel) - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь отсортировать массив объектов в Laravel, я устанавливаю текущее значение внешнего ключа моего сообщения categorie_id, чтобы оно было первым в массиве.

После этого другие объекты необходимо отфильтровать в порядке des c.

Код:

$categorie = Categorie::all()->sortBy($posts->categorie_id);

Это не совсем работает, массив остается прежним. В этом случае мой ПРОСМОТР имеет сообщение с внешним ключом 4

enter image description here

1 Ответ

0 голосов
/ 27 апреля 2020
$categorie = Categorie::with(['posts' => function ($q) {
  $q->orderBy('categorie_id', 'desc');
}])->find($categorie_id);

// when lazy loading
$categorie = Categorie::find($categorie_id);
$categorie->load(['posts' => function ($q) {
  $q->orderBy('categorie_id', 'desc');
}]);

// or on the collection
$categorie = Categorie::find($categorie_id);
$categorie->posts->sortByDesc('categorie_id');


// or querying students directly
$categorie = Categorie::whereHas('posts', function ($q) use ($categorie_id) {
  $q->where('id', $categorie_id);
})->orderBy('categorie_id')->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...