Laravel 背包假字段和翻译
Laravel Backpack Fake fields and translations
我有一个带有确定数量条目的 CRUD 实体。有一些共同的字段(title, description),但有些条目有一些独有的字段,保存在extras.
我的问题是,有些字段可能是可翻译的,有些则不是。
现在让翻译在假字段中工作的唯一方法是让所有额外内容都可以翻译。
class Module extends Model
{
use CrudTrait;
use HasTranslations;
...
protected $fillable = ['title', 'description', 'extras'];
public $translatable = ['title', 'extras'];
这给我带来了麻烦,因为许多额外的字段是不可翻译的图像。
我在 @lloy0076
的帮助下找到了解决方案
向实体 table 添加一列,命名为 extras_translatable
,紧跟在 'extras'
之后。
在实体模型上,将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'];
然后将需要的字段存储在extras_translatable
中:
$this->crud->addField([
'fake' => true,
'store_in' => 'extras_translatable',
...
]);
我有一个带有确定数量条目的 CRUD 实体。有一些共同的字段(title, description),但有些条目有一些独有的字段,保存在extras.
我的问题是,有些字段可能是可翻译的,有些则不是。 现在让翻译在假字段中工作的唯一方法是让所有额外内容都可以翻译。
class Module extends Model
{
use CrudTrait;
use HasTranslations;
...
protected $fillable = ['title', 'description', 'extras'];
public $translatable = ['title', 'extras'];
这给我带来了麻烦,因为许多额外的字段是不可翻译的图像。
我在 @lloy0076
的帮助下找到了解决方案向实体 table 添加一列,命名为
extras_translatable
,紧跟在'extras'
之后。在实体模型上,将
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'];
然后将需要的字段存储在
extras_translatable
中:$this->crud->addField([ 'fake' => true, 'store_in' => 'extras_translatable', ... ]);