如何在Larvel Backpack中将本地化为非本地化模型?

时间:2020-07-24 11:34:56

标签: laravel eloquent laravel-backpack laravel-translatable laravel-models

我有一个非本地化的模型:具有以下属性的文章: id title description ;我想本地化 title description

我在Laravel Backpack文档中看到,CRUD可以使用 spatie / laravel-translatable 管理本地化的模型,该模型对每个属性Translatable models and multi-language CRUDs使用JSON字段。

我认为这是管理新的本地化模型的好方法,但是我找不到不重写现有软件的大部分就可以将我的Article模型传递给本地化版本的方法。

我错过了一个好的实践吗?

1 个答案:

答案 0 :(得分:0)

如果您已经使用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