paxha/laravel-sluggable
Composer 安装命令:
composer require paxha/laravel-sluggable
包简介
This package provides an event that will generate a unique slug when saving or creating any Eloquent model.
关键字:
README 文档
README
Laravel Slug Generator
Introduction
This package provides an event that will generate a unique slug when saving or creating any Eloquent model.
Installation
composer require paxha/laravel-sluggable
Usage
Getting Started
Consider the following table schema for hierarchical data:
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('slug')->unique(); });
Use the Sluggable trait in your model to work with slug:
class User extends Model { use \Sluggable\Traits\Sluggable; }
By default, the trait expects three things
- slugFrom(): array (optional) if you using
namecolumn - slugSaveTo(): string (optional) if you using
slugcolumn - separator(): string (optional) default
-
You can overriding it as well slugFrom(), slugSaveTo() and separator():
class User extends Model { use \Sluggable\Traits\Sluggable; public static function slugFrom() { return ['name']; // or return ['first_name', 'last_name']; } public static function slugSaveTo() { return 'slug'; // or return ['user_slug']; } public static function separator() { return '-'; // or return '_'; } }
Examples
Example A
Database
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('first_name'); $table->string('last_name'); $table->string('slug')->unique(); });
Model
class User extends Model { use \Sluggable\Traits\Sluggable; protected $fillable = [ 'first_name', 'last_name', ]; public static function slugFrom() { return ['first_name', 'last_name']; } }
Create User
User::create([ 'first_name' => 'John', 'last_name' => 'Doe' ]); // or $user = new User(); $user->first_name = 'John'; $user->last_name = 'Doe'; $user->save();
Output
{ 'first_name': 'John', 'last_name': 'Doe', 'slug': 'john-doe', }
Example B
Table
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->string('user_slug')->unique(); });
Model
class User extends Model { use \Sluggable\Traits\Sluggable; protected $fillable = [ 'name', ]; public static function slugSaveTo() { return ['user_slug']; } public static function separator() { return '_'; } }
Create User
User::create([ 'name' => 'John Doe' ]); // or $user = new User(); $user->name = 'John Doe'; $user->save();
Output
{ 'name': 'John Doe', 'user_slug': 'john_doe', }
License
This is open-sourced laravel library licensed under the MIT license.
统计信息
- 总下载量: 4.05k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-12-25