mguinea / laravel-translatable
Laravel包,用于使Eloquent模型的属性可翻译
dev-main
2024-07-30 09:29 UTC
Requires
- php: ^8.0
- illuminate/database: ^11.0
- illuminate/support: ^11.0
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-08-30 09:43:32 UTC
README
使用翻译表使Eloquent模型属性可翻译
此包包含一个特性,用于使Eloquent属性可翻译。翻译存储在翻译数据库表中。
一旦将特性安装到模型上,您可以执行以下操作
$customer = new Customer; // An Eloquent model $customer ->setTranslation('greeting', 'en', 'Hello') ->setTranslation('greeting', 'es', 'Hola') ->save(); $customer->greeting; // Returns 'Hello' given that the current app locale is 'en' $customer->getTranslation('greeting', 'es'); // returns 'Hola' app()->setLocale('es'); $customer->greeting; // Returns 'Hola'
安装
您可以通过composer安装此包
composer require mguinea/laravel-translatable
如果您想更改默认模型或默认表名,您可以发布配置文件
php artisan vendor:publish --tag=translatable-config
您必须发布迁移文件以创建多态和主翻译表
php artisan vendor:publish --tag=translatable-migrations
使模型可翻译
使模型可翻译的必要步骤是
-
首先,您需要添加
Mguinea\Translatable\Traits\Translatable
-特性。 -
接下来,您应该创建一个公共静态属性
$translatable
,它包含您希望使其可翻译的所有属性名称的数组。 -
您必须在模型迁移中创建一个字段,类型为
string
和nullable
。
以下是一个准备好的模型示例
use Illuminate\Database\Eloquent\Model; use Mguinea\Translatable\Traits\Translatable; class NewsItem extends Model { use Translatable; protected $fillable = ['greeting']; public static $translatable = ['greeting']; }