alihann/laravel-rockid

使用 jenssegers/optimus 进行 id 混淆的 Laravel 扩展包。

v1.0 2016-06-01 17:30 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:28:35 UTC


README

使用 Optimus 为 Laravel 实现 id 混淆。Optimus

安装方法

  1. composer require

    composer require alihann/laravel-rockid
  2. 在 config/app.php 中

    'providers' => [
            App\Providers\EventServiceProvider::class,
            App\Providers\RouteServiceProvider::class,
            ...
            Alihann\LaravelRockid\RockidServiceProvider::class,
        ],
  3. 如果您想使用 facade

    'aliases' => [
            'Validator' => Illuminate\Support\Facades\Validator::class,
            'View' => Illuminate\Support\Facades\View::class,
            ...
            'Rockid' => Alihann\LaravelRockid\Facades\Rockid::class,
        ],
  4. 发布配置文件

    php artisan vendor:publish
  5. 生成数字并添加到发布的配置文件中。(例如: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);
    });
}