sujuan97825 / laravel-slug-generator
Laravel 多语言支持的 slug 生成器
v0.1.2
2022-12-05 07:22 UTC
Requires
- php: >=7.4
README
Laravel 多语言支持的 slug 生成器。
安装
composer require sujan97825/laravel-slug-generator
配置
服务提供者注册 在 config/app.php
中,在 providers
数组中添加 -
'providers' => [ // ... Sujan\\LaravelSlugGenerator\\SlugGeneratorServiceProvider::class, // ... ],
门面类别名 在别名数组中添加 -
'aliases' => Facade::defaultAliases()->merge([ // ... 'SlugGenerator' => Sujan\LaravelSlugGenerator\Facades\SlugGenerator::class, // ... ])->toArray(),
从控制器使用
首先导入 SlugGenerator 门面
use Sujan\LaravelSlugGenerator\Facades\SlugGenerator;
示例 #01- 从标题生成唯一的 slug
假设,在 Post
类中,我们已添加了唯一的 slug
列。现在,如果我们传递 title
并从该标题生成 slug
,那么 -
use App\Models\Post; // First time create post with title SlugGenerator::uniqueSlug(Post::class, 'সম্পন্ন !#$%$%^ হল বঙ্গবন্ধু&**( টানেলের //? প্রথম টিউবের )()(**@%$^&*( কাজ ', 'slug'); // Output: সম্পন্ন-হল-বঙ্গবন্ধু-টানেলের-প্রথম-টিউবের-কাজ // Second time create post with title SlugGenerator::uniqueSlug(Post::class, 'সম্পন্ন !#$%$%^ হল বঙ্গবন্ধু&**( টানেলের //? প্রথম টিউবের )()(**@%$^&*( কাজ ', 'slug'); // Output: সম্পন্ন-হল-বঙ্গবন্ধু-টানেলের-প্রথম-টিউবের-কাজ-1 // Third time create post with title SlugGenerator::uniqueSlug(Post::class, 'সম্পন্ন !#$%$%^ হল বঙ্গবন্ধু&**( টানেলের //? প্রথম টিউবের )()(**@%$^&*( কাজ ', 'slug'); // Output: সম্পন্ন-হল-বঙ্গবন্ধু-টানেলের-প্রথম-টিউবের-কাজ-2
示例 #02 - 从标题生成一般的 slug(非唯一)
// First time create post with title SlugGenerator::generalSlug('সম্পন্ন !#$%$%^ হল বঙ্গবন্ধু&**( টানেলের //? প্রথম টিউবের )()(**@%$^&*( কাজ '); // Output: সম্পন্ন-হল-বঙ্গবন্ধু-টানেলের-প্রথম-টিউবের-কাজ // Second time create post with title SlugGenerator::generalSlug('সম্পন্ন !#$%$%^ হল বঙ্গবন্ধু&**( টানেলের //? প্রথম টিউবের )()(**@%$^&*( কাজ '); // Output: সম্পন্ন-হল-বঙ্গবন্ধু-টানেলের-প্রথম-টিউবের-কাজ
API 文档
生成方法 -
SlugGenerator::uniqueSlug($model, $value, $field, $separator); SlugGenerator::generalSlug($value,$separator);
/** * Generate a Unique Slug. * * @param object $model * @param string $value * @param string $field * @param string $separator * * @return string * @throws \Exception */ public function uniqueSlug( $model, $value, $field, $separator = null ): string
/** * Generate a general Slug. * * @param string $value * @param string $separator * * @return string */ public function generalSlug( $value, $separator = null ): string
发布配置
php artisan vendor:publish --provider="Sujan\LaravelSlugGenerator\SlugGeneratorServiceProvider"
配置
return [ /* |-------------------------------------------------------------------------- | Slug default separator. |-------------------------------------------------------------------------- | | If no separator is passed, then this default separator will be used as slug. | */ 'separator' => '-', /* |-------------------------------------------------------------------------- | Slug max count limit |-------------------------------------------------------------------------- | | Default 100, slug will generated like | test-1, test-2, test-3 .... test-100 | */ 'max_count' => 100, ];
类似包 & 启发于
https://github.com/ManiruzzamanAkash/laravel-unique-slug-generator
贡献
您可以创建任何 Pull request。