lanin / laravel-hashids
将Hashids集成到Laravel中。
Requires
- php: >=5.4.0
- hashids/hashids: 1.0.5
- illuminate/support: ~5.0
Requires (Dev)
- phpunit/phpunit: ^4.7.6
This package is auto-updated.
Last update: 2024-09-07 20:38:47 UTC
README
轻松将Laravel与Hashids集成,支持完整模型。
虽然有很多包可以将Hashids与Laravel集成,但它们都只是提供了门面和添加了一些语法糖。
但是,关于模型绑定和自动ID解析呢?这个包为您提供了一切。您只需安装它即可!
安装
需要PHP 5.4+或HHVM 3.3+,Composer和Laravel 5.0+。
要获取Laravel-Hashids的最新版本,只需通过Composer安装即可。
$ composer require lanin/laravel-hashids
安装Laravel-Hashids后,您需要注册服务提供者。打开 config/app.php
并将以下内容添加到 providers 键中。
Lanin\Laravel\Hashids\HashidsServiceProvider::class,
最后一步是将 \Lanin\Laravel\Hashids\UseHashidsRouter
特性添加到您的 App\Http\Kernel
中。这将强制Laravel使用包路由来分发路由。
namespace App\Http; class Kernel extends HttpKernel { use \Lanin\Laravel\Hashids\UseHashidsRouter; ... }
您还可以注册 HashidsFacade
以方便访问Hashids方法。
'Hashids' => Lanin\Laravel\Hashids\HashidsFacade::class,
使用方法
您无需修改路由或HTML即可使其运行。如果您在HTML中使用模型绑定和路由解析,所有内容将自动转换。
绑定
安装后,路由器的 model
方法将绑定占位符ID到模型,并自动支持hashids并将它们转换为内部整数ID。
路由
如果您将hash id传递到URL中,它将轻松解析为关联模型。但是,如何在您的HTML输出中替换ID呢?有两种方式。一切取决于您如何形成URL。
如果您喜欢手动形成,包提供了Blade辅助方法 @hashids($id)
,它将您的ID转换为哈希字符串。
<a href="/posts/@hashids($post->id)">{{$post->title}}</a>
但是,这种方法很繁琐。我更喜欢使用Laravel的出色功能,该功能可以自动从模型中提取ID并将它们插入到您的URL中。示例
route('page.show', $page); url('page', ['id' => $page]);
这些方法已更新以处理Hashids。它们将自动将模型中的整数ID替换为Hashids。
如果由于某种原因您不想转换它们,只需在您的模型中实现
\Lanin\Laravel\Hashids\DoNotUseHashids
接口即可。
配置
默认情况下,包将使用您的 APP_KEY
作为盐并使用5个字符长度的哈希。如果您想覆盖它,发布hashids配置并编辑 config/hahshids.php
$ php artisan vendor:publish
贡献
请随时fork此包,并通过提交拉取请求来增强功能进行贡献。