Провод Livewire: модель не работает с вложенными компонентами

Я создаю страницу с помощью 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']
        ]);
    }
}

Это то, что я получаю в браузере

введите описание изображения здесь

Есть идеи, почему это происходит?


person Hazem Taha    schedule 29.12.2020    source источник
comment
Вы добавили @livewireScripts в свой макет? Если да, попробуйте очистить кеш.   -  person Qirel    schedule 29.12.2020
comment
да, я работал, но все еще не работал, спасибо за ответ   -  person Hazem Taha    schedule 29.12.2020


Ответы (1)


Я обнаружил проблему, это были правила проверки, мне пришлось изменить ее на

protected $rules = [
    'user.name' => 'required|min:6',
    'user.email' => 'required|email',
];
person Hazem Taha    schedule 29.12.2020