Laravel Unique Translation 使用教程
项目介绍
laravel-unique-translation
是一个用于 Laravel 框架的扩展包,旨在帮助开发者验证 JSON 列中的翻译值是否在数据库中唯一。这对于多语言应用程序特别有用,确保每个翻译在特定语言环境中是唯一的。
项目快速启动
安装
首先,通过 Composer 安装该包:
composer require codezero/laravel-unique-translation
Laravel 会自动注册 ServiceProvider。
使用
假设我们有一个 posts
表,并且我们希望验证 slug
在当前语言环境中是否唯一。
验证单个翻译
在你的表单中提交一个单个的 slug
:
<input name="slug">
然后我们可以检查它是否在当前语言环境中唯一:
$attributes = request()->validate([
'slug' => 'required|unique_translation:posts'
]);
或者使用 Rule 实例:
use CodeZero\UniqueTranslation\UniqueTranslationRule;
$attributes = request()->validate([
'slug' => ['required', UniqueTranslationRule::for('posts')]
]);
应用案例和最佳实践
应用案例
假设你正在开发一个多语言的博客系统,每个博客文章都有一个唯一的 slug
。使用 laravel-unique-translation
可以确保在不同的语言环境中,每个 slug
都是唯一的,从而避免链接冲突。
最佳实践
- 集成到表单验证:确保在表单提交时进行验证,以防止重复的翻译值。
- 错误处理:在验证失败时提供友好的错误提示,帮助用户理解并修正问题。
典型生态项目
Spatie Laravel Translatable
laravel-unique-translation
通常与 spatie/laravel-translatable
一起使用,后者提供了方便的方法来处理 Eloquent 模型的翻译字段。
Nova Translatable
如果你使用 Laravel Nova 作为管理面板,spatie/nova-translatable
可以与 laravel-unique-translation
结合使用,提供强大的翻译管理功能。
通过这些生态项目的结合使用,可以构建一个功能强大且易于管理的多语言应用程序。