Как сделать локализованной нелокализованную модель в рюкзаке Larvel?

У меня есть нелокализованная модель: Статья со следующими свойствами: id, title, description; и я хочу локализовать название и описание.

Я видел в документации Laravel Backpack, что CRUD могут управлять локализованными моделями с помощью spatie/laravel-translatable, который использует поля JSON для каждого свойства Переводимые модели и многоязычные CRUD.

Я думаю, что это хороший способ управлять новыми локализованными моделями, но я не могу найти способ передать мою модель статьи в локализованную версию, не переписывая большую часть существующего программного обеспечения.

Есть хорошая практика, которую мне не хватает, чтобы сделать это?


person Alfonso Cuccaro    schedule 24.07.2020    source источник
comment
Вы в настоящее время используете рюкзак?   -  person Senthur    schedule 24.07.2020
comment
Да, в настоящее время мой бэкэнд сделан с рюкзаком   -  person Alfonso Cuccaro    schedule 24.07.2020


Ответы (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
person Senthur    schedule 25.07.2020
comment
Да, но проблема в том, что у меня уже есть целое приложение (не бэкофис), которое работает с этими данными. Мне было интересно, есть ли наилучшая практика перехода от нелокализованной модели к локализованной модели без перезаписи приложения (а не бэк-офиса). - person Alfonso Cuccaro; 31.07.2020