Как мне сделать локализованную нелокализованную модель в 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
Другие вопросы по тегам