Как мне сделать локализованную нелокализованную модель в Larvel Backpack?
У меня нелокализованная модель: статья со следующими свойствами: id, title, description; и я хочу локализовать название и описание.
Я видел в документации Laravel Backpack, что CRUD могут управлять локализованными моделями с помощью spatie / laravel-translatable, который использует поля JSON для каждого свойства. Переводимые модели и многоязычные CRUD.
Я думаю, что это хороший способ управлять новыми локализованными моделями, но я не могу найти способ передать мою модель Article в локализованную версию, не переписав большую часть существующего программного обеспечения.
Есть хорошая практика, которую мне не хватает для этого?
1 ответ
Если вы уже используете Backpack
затем используя spatie/laravel-translatable
лучший вариант. Вы можете сделать свойArticle
модель, как показано ниже, чтобы сделать ее переводимой.
<?php
namespace App\Models;
use Backpack\CRUD\app\Models\Traits\CrudTrait;
use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\app\Models\Traits\SpatieTranslatable\HasTranslations; //you need to add
class Article extends Model
{
use CrudTrait;
use HasTranslations; //you need to add
/*
|--------------------------------------------------------------------------
| GLOBAL VARIABLES
|--------------------------------------------------------------------------
*/
protected $table = 'articles';
protected $primaryKey = 'id';
protected $fillable = ['title', 'description'];
protected $translatable = ['title', 'description']; //you need to add