Raúl López
1 min de lectura #filament #laravel

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();
}