Guardando los datos desde una custom page de Filament
Justo ayer me encontré con un problema al guardar los datos usando Filament desde una custom page. Tenía un método más o menos así:
public function save()
{
$this->validate();
$record = Configuration::firstOrNew();
$record->external_links = $this->external_links;
$record->save();
}
external_links
es un array y dentro tiene subida de ficheros. Al ejecutar este código, pensaba que Filament me gestionaría el cambio de "fichero subido" a una ruta para guardar en base de datos directamente. Pero no 🫣
Al parecer, en lugar de acceder directamente a la variable de estado external_links
, Filament tiene un método llamado $form→getState()
que nos devolverá los datos en el formato correcto para la base de datos, por lo que el código finalmente quedaría así:
public function save()
{
$this->validate();
$fields = $this->form->getState();
$record = Configuration::firstOrNew();
$record->external_links = $fields['external_links'];
$record->save();
}