36 lines
604 B
PHP
36 lines
604 B
PHP
|
<?php
|
||
|
|
||
|
namespace App\Models\Observers;
|
||
|
|
||
|
/**
|
||
|
* Create a slug from a name
|
||
|
* @package App\Models\Observers
|
||
|
*/
|
||
|
class Sluggable
|
||
|
{
|
||
|
/**
|
||
|
* @param $model
|
||
|
*/
|
||
|
public function creating($model): void
|
||
|
{
|
||
|
$model->slug = str_slug($model->name);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param $model
|
||
|
*/
|
||
|
public function updating($model): void
|
||
|
{
|
||
|
$model->slug = str_slug($model->name);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param $name
|
||
|
*/
|
||
|
public function setNameAttribute($name): void
|
||
|
{
|
||
|
$this->attributes['name'] = $name;
|
||
|
$this->attributes['slug'] = str_slug($name);
|
||
|
}
|
||
|
}
|