spatie/query-string

操作查询字符串

1.0.3 2020-11-30 16:09 UTC

This package is auto-updated.

Last update: 2024-09-11 20:52:22 UTC


README

QueryString

Latest Version on Packagist run-tests Total Downloads

与查询字符串协同工作

支持我们

我们投入了大量资源来创建最佳的开源软件包。您可以通过购买我们的付费产品之一来支持我们。

我们非常感激您从您的家乡寄来明信片,注明您正在使用我们哪些包。您可以在我们的联系页面上找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上

安装

您可以通过composer安装此包

composer require spatie/query-string

用法

use Spatie\QueryString\QueryString;

$queryString = new QueryString($uri);

切换参数

单个切换

# / > /?toggle

$queryString->toggle('toggle');

切换值

# / > /?single=a

$queryString->toggle('single', 'a');
# /?single=a > /?single=b

$queryString->toggle('single', 'b');
# /?single=a > /?

$queryString->toggle('single', 'a');

切换多个值

# / > /?multi[]=a&multi[]=b

$queryString->toggle('multi[]', 'a');
$queryString->toggle('multi[]', 'b');
# /?multi[]=a&multi[]=b > /?multi[]=a

$queryString->toggle('multi[]', 'b');

过滤

过滤查询字符串将使用JSON API过滤语法。

# / > /?filter[field]=a

$queryString->filter('field', 'a');
# / > /?filter[field][]=b

$queryString->filter('field[]', 'b');

排序

排序查询字符串将使用JSON API排序语法。目前仅支持单个排序。

# / > /?sort=field > /?sort=-field > /?sort=field

$queryString->sort('field');
$queryString->sort('field');
$queryString->sort('field');

分页

支持内置的分页功能

$queryString->page(10); # /?page=10
$queryString->nextPage(); # /?page=11
$queryString->previousPage(); # /?page=9
$queryString->resetPage(); # /?

$queryString->isCurrentPage(1); # true

请注意,更改查询字符串上的任何其他值也会重置页面。

其他有用的方法

基础URL

QueryString转换为字符串将生成URL。您可以选择使用不同的基础URL,如下所示

$queryString->withBaseUrl('https://other.url');

清除参数

# /?toggle > /

$queryString->clear('toggle');
# /?single=b > /

$queryString->clear('single');
# /?multi[]=a&multi[]=b > /

$queryString->clear('multi[]');

活动参数或不是

# /?multi[]=a

$queryString->isActive('multi[]'); # true
$queryString->isActive('multi[]', 'a'); # true
$queryString->isActive('multi[]', 'b'); # false
# /?single=a

$queryString->isActive('single'); # true
$queryString->isActive('single', 'a'); # true
$queryString->isActive('single', 'b'); # false
# /?toggle

$queryString->isActive('toggle'); # true

Laravel支持

未来将添加一个独立的Laravel包。Laravel包将在内部使用此包并实现JSON API规范。

测试

composer test

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现了关于安全性的bug,请通过security@spatie.be发送邮件,而不是使用问题跟踪器。

明信片软件

您可以自由使用此包,但如果它进入了您的生产环境,我们非常感谢您从您的家乡寄来明信片,注明您正在使用我们哪些包。

我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。

我们将所有收到的明信片发布在我们的公司网站上

致谢

许可

MIT许可(MIT)。请参阅许可文件以获取更多信息。