LaravelPackages.net
Acme Inc.
Toggle sidebar
pawelmysior/laravel-sluggable

A small trait, a wrapper of cviebrock/eloquent-sluggable

354
0
7.0.0
About pawelmysior/laravel-sluggable

pawelmysior/laravel-sluggable is a Laravel package for a small trait, a wrapper of cviebrock/eloquent-sluggable. It currently has 0 GitHub stars and 354 downloads on Packagist (latest version 7.0.0). Install it with composer require pawelmysior/laravel-sluggable. Discover more Laravel packages by pawelmysior or browse all Laravel packages to compare alternatives.

Last updated

Sluggable

This is a very small trait. It is an elegant wrapper of cviebrock/eloquent-sluggable.

It defines a default slug source attribute (title) and adds a scope to find a model by the slug.

Installation

You can install the package via composer:

composer require pawelmysior/laravel-sluggable

Preparation

Use the trait on the model:

<?php
 
namespace App;
  
use Illuminate\Database\Eloquent\Model;
use PawelMysior\Sluggable\Sluggable;
 
class Post extends Model
{
    use Sluggable;
}

By default the slug is created from the title attribute, but you can easily change it by overwriting the getSlugSourceAttribute() method from the trait on your model like so:

<?php
 
namespace App;
  
use Illuminate\Database\Eloquent\Model;
use PawelMysior\Sluggable\Sluggable;
 
class Post extends Model
{
    use Sluggable;

    protected function getSlugSourceAttribute(): string
    {
        return $this->name;
    }
}

Usage

The slugs will now be created. There is also a scope defined in the trait that lets you find a post by slug:

Post::findBySlug('slug');

License

The MIT License (MIT). Please see License File for more information.

Star History Chart