<?php
namespace AppHttpControllersAdmin;
use AppHttpControllersController;
use IlluminateSupportStr;
class SlugController extends Controller
{
public function show()
{
$slug = [
Str::slug('Laravel 5 Framework', '-'),
Str::slug('артел модеб 65 маркаси', '-'),
Str::slug('Namangan viloyati ', '-'),
];
return $slug;
}
}
public function setTitleAttribute($value)
{
$this->attributes['title'] = $value;
$this->attributes['slug'] = str_slug($value);
}
/**
* Laravel provides a boot method which is 'a convenient place to
* register your event bindings.'
* See: https://laravel.com/docs/master/eloquent#events
*/
public static function boot()
{
parent::boot();
// registering a callback to be executed upon the creation of an activity AR
static::creating(function($activity) {
// produce a slug based on the activity title
$slug = Str::slug($news->title);
// check to see if any other slugs exist that are the same & count them
$count = static::whereRaw("slug RLIKE '^{$slug}(-[0-9]+)?$'")->count();
// if other slugs exist that are the same, append the count to the slug
$activity->slug = $count ? "{$slug}-{$count}" : $slug;
});
}
// Use the create method
Activity::create(['title'=>'lorem ipsum']);