如何在背包中实现laravel独特翻译?

时间:2020-11-12 11:56:17

标签: backpack-for-laravel

我正在测试背包4.1中https://github.com/spatie/laravel-translatable的实现,并已通过composer添加了该软件包。

我的Post模型中有一个子字段(Json格式),我需要验证每个语言环境的唯一性。我已将以下内容添加到我的帖子模型中。

namespace App\Models;

use Backpack\CRUD\app\Models\Traits\CrudTrait;
use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\app\Models\Traits\SpatieTranslatable\HasTranslations;

class Post extends Model
{
    use CrudTrait;
    use HasTranslations;

    /*
    |--------------------------------------------------------------------------
    | GLOBAL VARIABLES
    |--------------------------------------------------------------------------
    */

    protected $table = 'posts';
    protected $primaryKey = 'id';
    public $timestamps = true;
    protected $guarded = ['id'];
    protected $fillable = [
        'name',
        'image_file',
        'title',
        'slug',
        'notes',
        'published_at',
        'review_at',
        'valid_from',
        'valid_to',
        'created_at',
        'updated_at',
        'deleted_at',
    ];
    protected $translatable = ['title','slug'];

我已添加https://github.com/codezero-be/laravel-unique-translation,并且在我的请求文件中具有以下翻译规则。

public function rules()
{
    return [
        // 'name' => 'required|min:5|max:255'
        'slug' => 'required|unique_translation:posts',
    ];
}

但是Unique_translation规则会针对所有语言环境进行验证-因此,如果我用丹麦语和英语使用相同的子弹字段值,则会出现错误。 enter image description here

任何人都有针对此用例和背包实施的解决方案吗?

0 个答案:

没有答案