alihann / laravel-rockid
使用 jenssegers/optimus 进行 id 混淆的 Laravel 扩展包。
v1.0
2016-06-01 17:30 UTC
Requires
- php: ^5.5.9 || ^7.0
- illuminate/console: 5.2.*
- illuminate/support: 5.2.*
- jenssegers/optimus: ~0.2
- phpseclib/phpseclib: ^2.0
This package is not auto-updated.
Last update: 2024-09-23 13:28:35 UTC
README
使用 Optimus 为 Laravel 实现 id 混淆。Optimus。
安装方法
-
composer require
composer require alihann/laravel-rockid
-
在 config/app.php 中
'providers' => [ App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, ... Alihann\LaravelRockid\RockidServiceProvider::class, ],
-
如果您想使用 facade
'aliases' => [ 'Validator' => Illuminate\Support\Facades\Validator::class, 'View' => Illuminate\Support\Facades\View::class, ... 'Rockid' => Alihann\LaravelRockid\Facades\Rockid::class, ],
-
发布配置文件
php artisan vendor:publish
-
生成数字并添加到发布的配置文件中。(例如:config/rockid.php)
php artisan rockid:generate
用法
您可以使用 ObfuscatesId trait 在视图中获取模型的混淆 id。
use Illuminate\Database\Eloquent\Model; use Alihann\LaravalRockId\ObfuscatesId; class User extends Model { use ObfuscatesId; }
现在您在模型中有了 getId 方法来生成混淆 id。
<a href="user/{{ $user->getId() }}">Show user</a>
routes.php
Route::bind('user', function ($value) { $id = Rockid::decode($value); return \App\User::find($id); }); Route::get('user/{user}', function ($user) { return $user->getId(); });
或者在 RouteServiceProvider 类中
public function boot(Router $router) { parent::boot($router); $router->bind('user', function ($value) { $id = app('rockid')->decode($value); return \App\User::find($id); }); }