我正在测试背包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规则会针对所有语言环境进行验证-因此,如果我用丹麦语和英语使用相同的子弹字段值,则会出现错误。
任何人都有针对此用例和背包实施的解决方案吗?