Download the PHP package typicms/nestablecollection without Composer
On this page you can find all versions of the php package typicms/nestablecollection. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download typicms/nestablecollection
More information about typicms/nestablecollection
Files in typicms/nestablecollection
Package nestablecollection
Short Description A Laravel Package that extends Collection to handle unlimited nested items following adjacency list model.
License MIT
Informations about the package nestablecollection
NestableCollection
A Laravel package that extends Eloquent collections to handle nested items following the adjacency list model.
Requirements
- PHP ^8.3
- Laravel 12 or 13
Installation
Usage
The model must have a parent_id attribute:
and must use the NestableTrait:
Now each time you retrieve a collection of that model, it will be an instance of TypiCMS\NestableCollection instead of Illuminate\Database\Eloquent\Collection.
To get a tree of models, call the nest() method on a collection ordered by parent_id:
You will probably want a position column as well, so order first by parent_id then by position:
Custom parent column
By default, the parent column is parent_id. You can change it with the parentColumn() method:
Custom children name
By default, subcollections are named items. You can change it with the childrenName() method:
Indented and flattened list
The listsFlattened() method generates the tree as a flattened list with id as keys and title as values, perfect for select/option elements:
First call nest(), then listsFlattened():
By default it looks for a title column. Pass a custom column name as the first parameter:
Four spaces are used to indent by default. Use setIndent() to customize:
Result:
Fully qualified flattened list
The listsFlattenedQualified() method builds full paths instead of indentation:
Result:
Setting parent relations
The setParents() method sets the parent relation on each nested item, so you can traverse up the tree without querying the database:
Nesting a subtree
By default, items with a missing ancestor are removed. To nest a branch of a tree, use the noCleaning() method:
Testing
License
The MIT License (MIT). Please see License File for more information.
All versions of nestablecollection with dependencies
illuminate/database Version ~12.0|~13.0
illuminate/support Version ~12.0|~13.0