paxha/laravel-sluggable 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

Build Status StyleCI Total Downloads Latest Stable Version License

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

  1. slugFrom(): array (optional) if you using name column
  2. slugSaveTo(): string (optional) if you using slug column
  3. 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

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-12-25

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固