Downloads
Stars
Version
With this package you can generate unique string value for eloquent entity model.
Run from the command line:
composer require fomvasss/laravel-eus
Run from the command line:
php artisan vendor:publish --provider="Fomvasss\LaravelEUS\ServiceProvider"
A configuration file will be publish to config/eus.php
. In config file you can set default options.
EUS
facade in your Laravel projectIn next example, we generate unique article slug:
<?php
namespace App\Http\Controllers;
use Fomvasss\LaravelEUS\Facades\EUS;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
public function store(Request $request)
{
$rawSlug = $request->get('slug', $request->name);
$slug = EUS::setEntity(new \App\Models\Article())
->setRawStr($rawSlug)
->get();
$article = \App\Model\Article::create([
'title' => $title,
'slug' => $slug,
//.. other data
]);
//..
}
public function update($id, Request $request)
{
$article = \App\Model\Article::fingOrFail($id);
$rawSlug = $request->get('slug', $request->name);
$slug = EUS::setEntity($article)
->setRawStr($rawSlug)
->get();
$article->update([
'title' => $title,
'slug' => $slug,
//.. other data
]);
//..
}
}
Generate and get unique URL path:
<?php
$urlUniqueAlias = EUS::setEntity(new \App\Models\UrlAlias())
->setRawStr('path/for-your/unique-page')
->setFieldName('alias')
->setSlugSeparator('-')
->setAllowedSeparator('/')
->get();
Generate and save unique system name:
<?php
$term = \App\Models\Term::find(1);
EUS::setEntity($term)
->setRawStr($term->name)
->setFieldName('system_name')
->setSlugSeparator('_')
->where(['locale', '=', 'de']) // additional condition for finding a unique value
->save();
<?php
namespace App\Some\Namespace;
use Fomvasss\LaravelEUS\EUSGenerator;
class MyClass
{
public function __construct(EUSGenerator $eus)
{
$this->eus = $eus;
}
public function example()
{
$article = \App\Models\Article::find(1);
$this->eus
->setEntity($article)
->setRawStr('Some string for slug')
->save();
}
}