Files
eatvio-infra/app/Livewire/Profile/DescriptionForm.php
2024-01-15 17:11:55 +03:00

55 lines
1.3 KiB
PHP

<?php
namespace App\Livewire\Profile;
use App\Models\User;
use App\Models\UserDetailz;
use Illuminate\Contracts\View\Factory as ViewFactory;
use Illuminate\Contracts\View\View;
use Livewire\Component;
class DescriptionForm extends Component
{
public string $description = '';
public User $user;
public function mount(): void
{
$this->initDetailzIfNeeded();
$this->description = $this->user->detailz->additional_info ?? '';
}
public function updatedDescription(string $value): void
{
$userDetailz = $this->user->detailz;
$userDetailz->additional_info = $value;
$userDetailz->save();
}
public function render(): View|ViewFactory
{
return view('livewire.profile.description-form');
}
private function initDetailzIfNeeded(): void
{
$curUserDetailez = UserDetailz::firstOrNew(
['user_id' => $this->user->id],
[
'about_alergy' => '',
'about_taking_pils' => '',
'about_sport_hobbies' => '',
'favorite_foods' => '',
'unfavorite_foods' => '',
'additional_info' => '',
]
);
if (! isset($curUserDetailez->id)) {
$curUserDetailez->save();
}
}
}