Дерево категорий Laravel — дочерние элементы порядкаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Дерево категорий Laravel — дочерние элементы порядка

Сообщение Anonymous »

У меня есть проект Laravel с категориями и дочерними элементами — в моей модели есть эта функция:

Код: Выделить всё

    public static function tree() {
return Category::with(implode('.', array_fill(0, 100, 'children')))->where('parent_id', '=', NULL)->get();
}
Который я затем вызываю

Код: Выделить всё

$categories =  Category::tree();
А по виду у меня:

Код: Выделить всё

@foreach($categories as $index => $category)
{{ $category->title }}
@foreach($category['children'] as $child)
{{ $child->title }}
@endforeach
@endforeach
Это отлично работает, но сейчас я пытаюсь отсортировать детей по алфавиту.
Я пробовал так:

Код: Выделить всё

public static function tree() {
return Category::with([implode('.', array_fill(0, 100, 'children')) => function($query) {
$query->orderBy('title', 'ASC');
}])->where('parent_id', '=', NULL)->get();

}
Я также пробовал return Category::with(implode('.', array_fill(0, 100, 'children')))->where('parent_id', '= ', NULL)->orderBy('title)->get(); но это просто упорядочивает родительские категории.
Но не сортирует их. У кого-нибудь есть идеи?
Спасибо.
--РЕДАКТИРОВАТЬ--
Следуя предложению Тима о лучше, теперь у меня есть:

Код: Выделить всё

    public function children() {

return $this->hasMany('App\Category', 'parent_id', 'id');

}

public function childrenCategories()
{
return $this->children()->with('childrenCategories');
}
Тогда...

Код: Выделить всё

       $categories =  Category::with(['childrenCategories' =>
function($query) {
$query->orderBy('title', 'ASC');
}])->where('parent_id', '=', NULL)->get();
Это работает, но не часть заказа. Есть предложения?

Подробнее здесь: https://stackoverflow.com/questions/634 ... r-children
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»