feat: adiciona novo cliente no banco de dados.
This commit is contained in:
parent
875f856660
commit
b8dadb0292
|
|
@ -12,58 +12,39 @@ class AddClient extends Component
|
|||
{
|
||||
use WithFileUploads;
|
||||
|
||||
// 2. Declara as propriedades principais
|
||||
// 1. Declara as propriedades principais
|
||||
public ClientForm $form;
|
||||
public $showModal = false;
|
||||
|
||||
/**
|
||||
* Ouve o evento para abrir o modal.
|
||||
* Disparado por: wire:click="$dispatch('openAddClientModal')"
|
||||
*/
|
||||
#[On('openAddClientModal')]
|
||||
public function openModal()
|
||||
{
|
||||
$this->form->reset(); // Limpa o formulário de dados antigos
|
||||
$this->showModal = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fecha e limpa o modal.
|
||||
*/
|
||||
public function closeModal()
|
||||
{
|
||||
$this->showModal = false;
|
||||
$this->form->reset();
|
||||
}
|
||||
|
||||
/**
|
||||
* Método principal chamado pelo wire:submit="save".
|
||||
*/
|
||||
public function save()
|
||||
{
|
||||
// 3. Valida os dados usando as 'rules' do ClientForm.php
|
||||
|
||||
|
||||
// 2. Valida os dados usando as 'rules' do ClientForm.php
|
||||
$this->form->validate();
|
||||
|
||||
// 4. Pega todos os dados validados
|
||||
$data = $this->form->all();
|
||||
try {
|
||||
$data = $this->form->all();
|
||||
$data['name'] = $data['client_name'];
|
||||
// 4. Lida com o upload do arquivo de imagem
|
||||
if ($this->form->profile_image_path) {
|
||||
$path = $this->form->profile_image_path->store('client_logos', 'public');
|
||||
$data['profile_image_path'] = $path;
|
||||
}
|
||||
|
||||
// 5. Lida com o upload do arquivo de imagem
|
||||
if ($this->form->profile_image_path) {
|
||||
$path = $this->form->profile_image_path->store('client_logos', 'public');
|
||||
$data['profile_image_path'] = $path;
|
||||
// 5. Cria o cliente no banco de dados
|
||||
Client::create($data);
|
||||
// 6. Despacha um evento para atualizar outros componentes (ex: o grid de clientes)
|
||||
$this->dispatch('client-added');
|
||||
// (Opcional) Envia uma notificação de sucesso
|
||||
$this->dispatch('notify', message: 'Cliente adicionado com sucesso!');
|
||||
} catch (\Exception $e) {
|
||||
dd($e);
|
||||
$this->dispatch('notify', message: 'Ocorreu um erro inesperado ao salvar.', type: 'error');
|
||||
}
|
||||
// 3. Pega todos os dados validados
|
||||
|
||||
// 6. Cria o cliente no banco de dados
|
||||
Client::create($data);
|
||||
|
||||
// 7. Fecha o modal
|
||||
$this->closeModal();
|
||||
|
||||
// 8. Despacha um evento para atualizar outros componentes (ex: o grid de clientes)
|
||||
$this->dispatch('clientAdded');
|
||||
|
||||
// (Opcional) Envia uma notificação de sucesso
|
||||
// $this->dispatch('notify', 'Cliente adicionado com sucesso!');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -73,4 +54,4 @@ public function render()
|
|||
{
|
||||
return view('livewire.admin.add-client');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue