如何在自定义页面中使用Filament Spatie可翻译插件

问题描述 投票:0回答:1

我在灯丝中使用 Spatie 可翻译插件,当我在灯丝资源(列表、创建和编辑)中使用它时它可以工作,但是当我想在下面的自定义页面中使用它时它会给出错误:

use Filament\Forms\Form;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Actions;
 
class EditCompany extends Page implements HasForms
{
    use InteractsWithForms;
    use EditRecord\Concerns\Translatable;
 
    public ?array $data = []; 
 
    protected static ?string $navigationIcon = 'heroicon-o-document-text';
 
    protected static string $view = 'filament.pages.edit-company';
 
    public function mount(): void 
    {
        $this->form->fill();
    }
 
    public function form(Form $form): Form
    {
        return $form
            ->schema([
                TextInput::make('name')
                    ->required(),
            ])
            ->statePath('data');
    }

    protected function getHeaderActions(): array
    {
        return [
            Actions\LocaleSwitcher::make(),
        ];
    }
}

这是我的刀片文件:

<x-filament-panels::page>
    <x-filament-panels::form>
        {{ $this->form }}
    </x-filament-panels::form>
</x-filament-panels::page>

有人在自定义页面中使用过 spatie 可翻译吗,或者知道如何修复它。

我尝试了filament spatie可翻译EditRecord:

use EditRecord\Concerns\Translatable;
laravel-filament filamentphp
1个回答
0
投票
use Filament\Resources\Concerns\Translatable;

class Setting extends Page
{
   
   public function getActiveFormsLocale(): ?string
   {
      if (! in_array($this->activeLocale, $this->getTranslatableLocales())) {
          return null;
      }
      return $this->activeLocale;
   }

   public ?string $activeLocale = 'en';

然后..

Components\TextInput::make('key_name'.$this->getActiveFormsLocale())
© www.soinside.com 2019 - 2024. All rights reserved.