Download the PHP package thytanium/eloquent-positionable without Composer

On this page you can find all versions of the php package thytanium/eloquent-positionable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package eloquent-positionable

thytanium/eloquent-positionable

Tests Latest Stable Version Total Downloads PHP Version Require License

Use a property to sort Eloquent models.

This is a zero-config package that provides a trait to handle positioning/sorting capabilities for Eloquent models.

Compatibility

PHP >= 8.0 and Laravel >= 8.0.

Installation

This package can be installed through composer.

Don't worry about service providers. This package doesn't expose service providers.

Usage

Creating a new model will automatically assign the next available position.

API

Sorting

moveTo(int $position)

Moves the model to the indicated position.

moveToStart()

Moves the model to the start.

moveToEnd()

Moves the model to the end.

moveUp(?int $places = 1)

Moves the model the indicated amount of places up. Default 1.

moveDown(?int $places = 1)

Moves the model the indicated amount of places down. Default 1.

moveStep(int $step)

Moves the model by position change (step). A positive values moves the model up. A negative value moves the model down.

setNewOrder(array $ids, int $startPosition = 1, ?string $primaryKeyColumn = null)

Sets a new order for the specified ids.

Querying

ordered($order = 'asc'): \Illuminate\Database\Eloquent\Builder

Query scope to sort models by their position, i.e get the sorted list.

position(int $position): \Illuminate\Database\Eloquent\Builder

Query scope to search models with position equal to $position.

positionBetween(array $between): \Illuminate\Database\Eloquent\Builder

Query scope to search models with position between 2 values.

Swaping

swapPositions(\Illuminate\Database\Eloquent\Model|int $target)

Swap positions with another model or position.

Groups

In the case your model has grouping fields, like user_id, it can be taken care of by indicating the grouping column names:

Example
id user_id position
1 1 1
2 1 2
3 1 3
4 2 1

Caveats

Although this trait makes sure the same position is not used by more than one model, do not add a UNIQUE index to the position column. This will be overcome in future releases.

Tests

The package contains unit/integration tests set up with PHPUnit.

Changelog

Please see CHANGELOG.md for more information on what has changed recently.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Alternatives

License

The MIT License (MIT). Please see License File for more information.


All versions of eloquent-positionable with dependencies

PHP Build Version
Package Version
Requires php Version ^8.0
illuminate/database Version >=6.0
illuminate/support Version >=6.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package thytanium/eloquent-positionable contains the following files

Loading the files please wait ....