Я создаю страницу с помощью livewire для вывода списка пользователей из БД и возможности их обновления. У меня есть родительский компонент Users и дочерние компоненты (User).
users.blade.php:
<div>
@foreach($users as $key => $user)
<livewire:user :user="$user" key="{{$user->id}}">
@endforeach
</div>
user.blade.php
<div>
<form wire:submit.prevent="save">
<input type="text" wire:model="user.name">
<input type="text" wire:model="user.email">
<button class="btn btn-info" type="submit">Save</button>
</form>
</div>
Users.php
class Users extends Component
{
public $users;
public function mount()
{
$this->users = User::all();
}
public function render()
{
return view('livewire.users');
}
}
User.php
class User extends Component
{
public $user;
public function mount(\App\Models\User $user)
{
$this->user = $user;
}
public function render()
{
return view('livewire.user');
}
protected $rules = [
'name' => 'required|min:6',
'email' => 'required|email',
];
public function save()
{
$this->validate();
$user = $this->user;
User::find($user['id'])->fill([
'name' => $user['name'],
'email' => $user['email']
]);
}
}
Это то, что я получаю в браузере
Есть идеи, почему это происходит?
@livewireScripts
в свой макет? Если да, попробуйте очистить кеш. - person Qirel   schedule 29.12.2020