Отображение данных формы с динамическими типами полей с использованием повторителя форм Filament в LaravelPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Отображение данных формы с динамическими типами полей с использованием повторителя форм Filament в Laravel

Сообщение Anonymous »

В настоящее время я работаю над веб-приложением-формой, используя Laravel 10 и Filament PHP. У меня есть таблица формы со столбцами, содержащими следующие данные:

Код: Выделить всё

[
{
"value": "John Doe",
"desc": "Full Name",
"type": "string",
"valid": false
},
{
"value": "Elm Street No. 13",
"desc": "Address",
"type": "text",
"valid": false
},
{
"value": "0142365789",
"desc": "Phone Number",
"type": "string",
"valid": false
}
]
Теперь я хочу отобразить эти данные с помощью повторителя форм, предоставленного Filament. Ниже приведен фрагмент моего кода:

Код: Выделить всё

Step::make('Form')
->description('Form submission')
->schema([
Forms\Components\Repeater::make('form')->schema(function (Get $get): array {
switch ($get('type')) {
case 'string':
$formField = TextInput::make('value');
break;
case 'text':
$formField = Textarea::make('value');
break;
case 'image':
$formField = SpatieMediaLibraryFileUpload::make('value')->getUploadedFiles();
break;
case 'file':
$formField = FileUpload::make('value')->downloadable();
break;
case 'date':
$formField = DatePicker::make('value')->displayFormat(function (): string {
return 'd/m/Y';
});
break;
default:
$formField = TextInput::make('value');
}
return [
$formField,
Textarea::make('note'),
Toggle::make('valid'),
];
})->addable(false)
->deletable(false)
->reorderable(false)
->reorderableWithDragAndDrop(false)
->columnSpanFull(),
])
Когда я попытался запустить код, я вообще не обнаружил никаких ошибок, и данные отображались в соответствии с тем, что было сохранено в таблице, пока, наконец, я не понял, что данные отображаются не в соответствии с тип каждых данных. Например, если тип данных является строкой, должен отображаться TextInput, а если это файл, должен отображаться FileInput. Проблема в том, что я не уверен, как правильно получить доступ к типу данных из столбца формы перед его отображением. Когда я попытался добавить dd($get('type)), он вернул значение null.
Может ли кто-нибудь помочь мне решить эту проблему? Любые советы или ответы будут очень признательны. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/783 ... epeater-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»