maniruzzaman/laravel-unique-slug
Composer 安装命令:
composer require maniruzzaman/laravel-unique-slug
包简介
A simple but beautiful unique slug generator for Laravel eloquent model.
README 文档
README
A simple but beautiful unique slug generator for Laravel eloquent model.
Installation
composer require maniruzzaman/laravel-unique-slug
Configuration
Service Provider Registration
In config/app.php, add in providers array -
'providers' => [ // ... Akash\LaravelUniqueSlug\UniqueSlugServiceProvider::class, // ... ],
Facade Class Alias Add in aliases array -
'aliases' => Facade::defaultAliases()->merge([ // ... 'UniqueSlug' => Akash\LaravelUniqueSlug\Facades\UniqueSlug::class, // ... ])->toArray(),
Use from Controller
Import first the UniqueSlug facade
use Akash\LaravelUniqueSlug\Facades\UniqueSlug;
Example #01- Post unique slug from title
Let's assume, we have in Post class, we've added slug column which is unique. Now, if we passed title and generate slug from that, then -
use App\Models\Post; // First time create post with title Simple Post UniqueSlug::generate(Post::class, 'Simple Post', 'slug'); // Output: simple-post // Second time create post with title Simple Post UniqueSlug::generate(Post::class, 'Simple Post', 'slug'); // Output: simple-post-1 // Third time create post with title Simple Post UniqueSlug::generate(Post::class, 'Simple Post', 'slug'); // Output: simple-post-2
Example #02 - Pass custom separator
Let's assume separator is '' empty.
// First time create user. UniqueSlug::generate(User::class, 'akash', 'username', ''); // akash // Second time create user. UniqueSlug::generate(User::class, 'akash', 'username', ''); // akash1 // Third time create user. UniqueSlug::generate(User::class, 'akash', 'username', ''); // akash2
Example - Unique slug for category or any model easily
public function create(array $data): Category|null { if (empty($data['slug'])) { $data['slug'] = UniqueSlug::generate(Category::class, $data['name'], 'slug'); } return Category::create($data); }
API Docs
Generate method -
UniqueSlug::generate($model, $value, $field, $separator);
/** * Generate a Unique Slug. * * @param object $model * @param string $value * @param string $field * @param string $separator * * @return string * @throws \Exception */ public function generate( $model, $value, $field, $separator = null ): string
Publish configuration
php artisan vendor:publish akash/laravel-unique-slug
Configurations
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, ];
Contribution
You're open to create any Pull request.
maniruzzaman/laravel-unique-slug 适用场景与选型建议
maniruzzaman/laravel-unique-slug 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.79k 次下载、GitHub Stars 达 11, 最近一次更新时间为 2022 年 11 月 16 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「laravel_unique_slug」 「laravel-unique-slug」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 maniruzzaman/laravel-unique-slug 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 maniruzzaman/laravel-unique-slug 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 maniruzzaman/laravel-unique-slug 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Alfabank REST API integration
It's a unique slug generator for laravel
This is Simple slug generator
Unique slug generator for laravel eloquent model
A Unique Slug Generator for Laravel
Just testing purpose
统计信息
- 总下载量: 1.79k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 11
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-11-16