feature/slug-handling #18

Merged
bence merged 4 commits from feature/slug-handling into master 2023-05-07 01:52:34 +02:00
Showing only changes of commit a5bfc61db8 - Show all commits

View File

@ -0,0 +1,32 @@
<?php namespace SokoWeb\PersistentData\Model;
use Cocur\Slugify\Slugify;
abstract class ModelWithSlug extends Model
{
protected static string $slugSource;
protected ?string $slug = null;
public static function getFields(): array
{
return array_merge(['id', 'slug'], static::$fields);
}
public function setSlug(?string $slug): void
{
$this->slug = $slug;
}
public function getSlug(): ?string
{
return $this->slug;
}
public function generateSlug(): string
{
$slugSourceGetMethod = 'get' . str_replace('_', '', ucwords(static::$slugSource, '_'));
$this->slug = Slugify::create()->slugify($this->$slugSourceGetMethod());
return $this->slug;
}
}