1

我有一个具有确定数量的条目的 CRUD 实体。有一些公共字段(标题,描述),但有些条目有一些专有字段,这些字段保存在附加项中。

我的问题是,某些字段可能是可翻译的,而其他字段可能不是。目前,让翻译在虚假领域工作的唯一方法是让所有额外内容都可翻译。

class Module extends Model
{
    use CrudTrait;
    use HasTranslations;

    ...
    protected $fillable = ['title', 'description', 'extras'];
    public $translatable = ['title', 'extras'];

这给我带来了一个问题,因为许多额外的字段是无法翻译的图像。

4

1 回答 1

4

我在@lloy0076的帮助下找到了解决方案

  1. 将一列添加到实体表,命名为extras_translatable,紧随其后'extras'

  2. 在实体模型上,添加extras_translatable到和变量,然后$fillable转换为:$fakeColumns$translatable'extras_translatable'array

    protected $fillable = ['title', 'description', 'extras', 'extras_translatable'];
    protected $fakeColumns = ['extras', 'extras_translatable']; 
    protected $translatable = ['title', 'extras_translatable'];
    protected $casts = ['extras_translatable' => 'array'];
    
  3. 然后只需将所需的字段存储在extras_translatable

    $this->crud->addField([
        'fake' => true,
        'store_in' => 'extras_translatable',
        ...
    ]);
    
于 2017-06-26T18:10:16.513 回答