void move ($dirn, [$where = ])
|$dirn||integer||Direction to move the record. $dirn < 0 for up, $dirn > 0 for down.|
|$where||string||Additional where query to limit ordering to a particular subset of records|
Your database table must have a column named 'ordering'.
The goal of the method is to move a record of the table one step up, or one step down by switching the ordering values with the respective neighbour.
Let's say we have the following database-table:
We now want to compress the ordering of the table.
//We need an instance of the table object. In a controller or model we can do it like this... $table = $this->getTable('greeting'); //Let's compact the ordering sequence $table->reorder();
The first thing the method does is to load the table ordered by the current ordering:
The next (and last step) is that the method updates the ordering entries so it's a consecutive sequence: