fomvasss / laravel-eus
用于生成Eloquent实体模型唯一字符串值的包
0.5.0
2020-03-02 21:11 UTC
Requires
- php: >=7.0.0
- illuminate/database: 5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0
- illuminate/support: 5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0
README
使用此包,您可以生成Eloquent实体模型唯一的字符串值。
安装
从命令行运行
composer require fomvasss/laravel-eus
发布配置
从命令行运行
php artisan vendor:publish --provider="Fomvasss\LaravelEUS\ServiceProvider"
配置文件将被发布到 config/eus.php
。在配置文件中,您可以设置默认选项。
使用方法
在您的Laravel项目中使用 EUS
面板
在以下示例中,我们生成唯一的文章缩略名
<?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 ]); //.. } }
其他允许的方法
生成并获取唯一的URL路径
<?php $urlUniqueAlias = EUS::setEntity(new \App\Models\UrlAlias()) ->setRawStr('path/for-your/unique-page') ->setFieldName('alias') ->setSlugSeparator('-') ->setAllowedSeparator('/') ->get();
生成并保存唯一的系统名称
<?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(); } }