spatie / query-string
操作查询字符串
1.0.3
2020-11-30 16:09 UTC
Requires
- php: ^7.3|^8.0
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-11 20:52:22 UTC
README
QueryString
与查询字符串协同工作
支持我们
我们投入了大量资源来创建最佳的开源软件包。您可以通过购买我们的付费产品之一来支持我们。
我们非常感激您从您的家乡寄来明信片,注明您正在使用我们哪些包。您可以在我们的联系页面上找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上。
安装
您可以通过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)。请参阅许可文件以获取更多信息。