fomvasss/laravel-eus

用于生成Eloquent实体模型唯一字符串值的包

安装次数: 125

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:composer-package

0.5.0 2020-03-02 21:11 UTC

This package is auto-updated.

Last update: 2024-08-29 04:43:15 UTC


README

License Build Status Latest Stable Version Total Downloads Quality Score

使用此包,您可以生成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();
    }
}