sukohi / caruta

一个主要用于Laravel生成排序链接的PHP包。

2.0.1 2015-08-15 22:53 UTC

This package is auto-updated.

Last update: 2024-09-09 04:56:00 UTC


README

一个主要用于Laravel生成排序链接的PHP包。
(适用于Laravel 5+。 适用于Laravel 4.2)

alt text alt text

安装

在 composer.json 中添加此包名称。

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

执行 composer 命令。

composer update

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

'providers' => [
    ...Others...,  
    Sukohi\Caruta\CarutaServiceProvider::class,
]

也别名

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

使用方法

最小化方式

{{ \Caruta::links('your-column-name') }}

(示例)
alt text

带选项

echo \Caruta::url('http://example.com')  
    ->text('↑', '↓')  
    ->appends([
		'key1' => 'value1',  
		'key2' => 'value2',  
		'key3' => 'value3'  
	])
	->keys('order', 'direction')
	->links('column_name', $separator = ''); 
  • 所有方法除了 links() 都是可选的。请参阅 方法

单文本方式

如果您设置第三个参数如下,则只显示一个链接。

\Caruta::text(
    '<i class="fa fa-sort-asc"></i>',  
    '<i class="fa fa-sort-desc"></i>',  
    '<i class="fa fa-sort"></i>'
);

(示例)

alt text

按模型排序
使用模型(Eloquent),您可以自动设置 "ORDER BY",如下所示。

$items = \App\Item::select('id', 'title');
$items = \Caruta::sort($items, 
    ['id', 'title', 'created_at'], 
    ['updated_at', 'asc']
);
dd($items->get()->toArray());
  • 第二个参数(Array) 表示除了特定的列名外将被忽略以设置 "ORDER BY",以确保安全。
  • 第三个参数(Array) 将被用作默认值。方向可以是 ascdesc

注意:如果您使用 keys() 方法更改了 "ORDER BY" 参数名称为其他键,在这种情况下也需要设置它。

方法

  • url($url)

$url 是包含在 href 属性中的基础 URL。

  • text($one, $two)

$one$two 是包含在链接标签中的文本。

例如:<a href="****">YOUR-TEXT</a>

  • appends($values)

$values 是您想要包含在链接 URL 中的附加值。

例如:http://example.com?orderby=*****&direction=asc&YOUR-KEY=YOUR-VALUE

许可证

此软件包根据MIT许可证授权。

版权所有 2014 Sukohi Kuhoh