Web Analytics

laravel-eloquent-sequencer

⭐ 152 stars Spanish by gurgentil

Laravel Eloquent Sequencer

Última Versión Estado del Flujo de Trabajo en GitHub Puntuación de Calidad Licencia MIT

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-sequencer

Configuració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();

Comandos Artisan

Asignar valores de secuencia a todos los registros que tienen sus valores establecidos en null.

bash php artisan sequence:populate \\App\\Task

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 ---