Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Eloquent Sortable Laravel Package

spatie/eloquent-sortable

Add sortable behavior to Laravel Eloquent models via a trait. Automatically sets an order column on create (max + 1) and provides a scope to retrieve records in the correct order. Ideal for drag-and-drop lists and custom ordering.

View on GitHub
Deep Wiki
Context7
5.0.1

Support Laravel 13

5.0.0

What's changed

  • Use save() instead of saveQuietly() in moveAfter and moveBefore for consistent model event behavior (#200)
  • Drop support for PHP 8.1 (EOL)
  • Drop support for Laravel 9 (EOL)

Breaking changes

  • Minimum PHP version is now 8.2
  • Minimum Laravel version is now 10
  • moveAfter and moveBefore now fire model events (previously used saveQuietly())
4.5.2

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.5.1...4.5.2

4.5.1

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.5.0...4.5.1

4.5.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.4.2...4.5.0

4.4.2

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.4.1...4.4.2

4.4.1

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.4.0...4.4.1

4.4.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.3.0...4.4.0

4.3.0

What's Changed

New Contributors

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.2.0...4.3.0

4.2.0

What's Changed

Full Changelog: https://github.com/spatie/eloquent-sortable/compare/4.1.1...4.2.0

4.1.0
  • add support for Laravel 10
  • drop support for Laravel 8
  • drop support for PHP 8.0
4.0.1
  • support Laravel 9
4.0.0
  • require PHP 8+
  • drop support for all PHP 7.x versions
  • use PHP 8 syntax
3.11.0
  • add methods to determine whether element is the last or first in order (#102)
3.10.0
  • add support for PHP 8.0
  • drop support for Laravel 5.8
3.9.0
  • add config file
3.8.3
  • add support for Laravel 8
3.8.2
  • reduce dependency tree (#89)
3.8.1
  • models don't always have an id as key, use getKey instead
3.8.0
  • add support for Laravel 7
3.7.0
  • add support for Laravel 6
3.6.0
  • allow setNewOrder to accept a custom sort column
3.5.0
  • drop support for L5.7 and below, PHP 7.1 and PHPUnit 7
3.4.4
  • add support for Laravel 5.8
3.4.3
  • add support for Laravel 5.7
3.4.2
  • add support for L5.6
  • drop support for anything lower that L5.5
3.4.1
  • fix deps
3.4.0
  • add compatibility with Laravel 5.5
3.3.0
  • add buildSortQuery()
3.2.1
  • release without changes. Made to kickstart Packagist.
3.2.0
  • add compatibility with Laravel 5.4
3.1.0
  • added support for SoftDeletes
3.0.0
  • removed the need for a service provider
  • some cleanup
2.3.0
  • added support for collections passed to setNewOrder
2.2.0
  • added moveToStart, moveToEnd and swapOrder
2.1.1
  • Fixed a bug in moveOrderUp (see #13)
2.1.0
  • Added moveOrderUp- and moveOrderDown-methods
2.0.1
  • Fixed typehinting on scope
2.0.0
  • SortableInterface is now Sortable
  • Sortable is now SortableTrait
  • getHighestOrderNumber() now retrieves the highest existing order number (not a new one)
  • setHighestOrderNumber() no longer requires a Sortable object parameter
  • sort_when_creating option
  • Added shouldSortWhenCreating function
  • Added test coverage
1.1.2
  • Removed typehinting on scope in interface.
1.1.1
  • Removed typehinting on scope
1.1.0
  • Added an argument to setNewOrder to specify the starting order
  • Adopted psr-2 and psr-4
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport