sukohi / cahen

一个主要用于 Laravel 的 PHP 包,用于自动管理数据库表排序值。

2.0.1 2017-01-30 21:15 UTC

This package is not auto-updated.

Last update: 2024-09-11 12:49:59 UTC


README

一个主要用于 Laravel 的 PHP 包,用于自动管理数据库表排序值。
(这是为 Laravel 5+。 针对 Laravel 4.2)

安装

在 composer.json 中添加此包名

"require": {
  "sukohi/cahen": "2.*"
}

执行 composer 命令。

composer update

在 app.php 中注册服务提供者

'providers' => [
    ...Others...,  
    Sukohi\Cahen\CahenServiceProvider::class,
]

同时别名

'aliases' => [
    ...Others...,  
    'Cahen'   => Sukohi\Cahen\Facades\Cahen::class
]

使用

基本

$model = YourModel::find(1);
\Cahen::move($model)->to('your-column-name', 5);

上移

\Cahen::move($model)->up('your-column-name');

下移

\Cahen::move($model)->down('your-column-name');

到第一

\Cahen::move($model)->first('your-column-name');

到最后

\Cahen::move($model)->last('your-column-name');

使用事务

\DB::beginTransaction();

if(!\Cahen::move($model)->to('your-column-name', 5)) {
	
    \DB::rollback();

}

\DB::commit();

使用 WHERE 子句

您可以使用 where 子句对特定记录进行排序。

$model = YourModel::find(1);
\Cahen::move($model)
        ->where('column_1', '=', 'value')
        ->where('column_2', 'LIKE', '%value%')
        ->to('your-column-name', 5);

设置数据

您可以通过设置模型对象对特定记录进行排序。

$moving_id = 1;
$model = YourModel::find($moving_id);
$models = YourModel::where('id', '<', 5)
            ->where('id', '<>', $moving_id)
            ->get();
\Cahen::move($model)
        ->data($models)
        ->to('your-column-name', 3);
  • 注意:您不能在 $models 中包含 ID 为 $moving_id 的记录。

对齐

$model = YourModel::orderBy('id', 'ASC')->get();
\Cahen::align($model, 'your-column-name');

关于排序编号

排序值从 0 开始。

许可

本软件包采用 MIT 许可证授权。

版权所有 2014 Sukohi Kuhoh