Laravel Eloquent Sequencer
Este paquete te permite crear y gestionar secuencias para tus modelos Eloquent.
Instalación
Instala el paquete vía composer:
composer require gurgentil/laravel-eloquent-sequencerConfiguración
Para publicar el archivo de configuración, ejecute:
php artisan vendor:publish --provider="Gurgentil\LaravelEloquentSequencer\LaravelEloquentSequencerServiceProvider"Parámetros de configuración
Puedes cambiar el nombre de la columna predeterminada, el valor inicial y la estrategia de secuenciación en config/eloquentsequencer.php:
return [
'column_name' => 'position',
'initial_value' => 1,
'strategy' => 'always',
];La configuración strategy determina cuándo se debe activar la secuenciación y acepta uno de los siguientes valores: always, on_create, on_update o never.
Configuración del modelo
El atributo $sequenceable especifica el nombre de la columna de secuencia para el modelo:
protected static $sequenceable = 'order';La(s) clave(s) de relación que agruparán los elementos de la secuencia:
protected static $sequenceableKeys = [
'task_list_id',
];En el ejemplo anterior, una lista de tareas tiene muchas tareas.
Para relaciones polimórficas especifica ambas claves de relación:
protected static $sequenceableKeys = [
'commentable_id',
'commentable_type',
];Uso
En el ejemplo a continuación, una lista de tareas puede tener muchas tareas.
`` php
use Gurgentil\LaravelEloquentSequencer\Traits\Sequenceable;
use Illuminate\Database\Eloquent\Model;
class Task extends Model { use Sequenceable;
protected $fillable = [ 'position', ]; protected static $sequenceableKeys = [ 'task_list_id', ];
public function taskList() { return $this->belongsTo(TaskList::class); } }
Crear un objeto
php
Task::create([
'position' => 1,
'task_list_id' => 1,
]);
Si no se proporciona un valor para el atributo de secuencia, el objeto se colocará al final de la secuencia.
php
Task::create(['task_list_id' => 1]);
Actualizar y eliminar objetos
Los otros elementos en la secuencia serán reordenados para mantener la consistencia de la secuencia.
php
$task->update(['position' => 4]);
php
$task->delete();
Obtener el valor de secuencia de un objeto
php
$value = $task->getSequenceValue();
Obtener el nombre de la columna de secuencia
php
$columnName = Task::getSequenceColumnName();
Desactivar la secuenciación automática
php
$task->withoutSequencing()->update(['position' => 3]);
php
$task->withoutSequencing()->delete();
Consulta de alcance para ordenar resultados por valor de secuencia
php
$tasks = Task::sequenced()->get();
bash php artisan sequence:populate \\App\\TasknullComandos Artisan
Asignar valores de secuencia a todos los registros que tienen sus valores establecidos en
.
Vaciar todos los valores de secuencia para un modelo.
bash
php artisan sequence:flush \\App\\Task
Pruebas
bash
composer test
``Registro de cambios
Por favor, consulte CHANGELOG para más información sobre los cambios recientes.
Contribuir
Por favor, consulte CONTRIBUTING para más detalles.
Seguridad
Si descubre algún problema relacionado con la seguridad, por favor envíe un correo a gustavorgentil@outlook.com en lugar de usar el rastreador de incidencias.
Créditos
Licencia
La licencia MIT (MIT). Por favor, consulte Archivo de licencia para más información.
Plantilla de paquete Laravel
Este paquete fue generado usando la Plantilla de paquete Laravel.
--- Tranlated By Open Ai Tx | Last indexed: 2026-01-05 ---