【问题标题】:Profile Not Updating In Laravel LivewireLaravel Livewire 中的配置文件未更新
【发布时间】:2021-11-25 23:47:57
【问题描述】:

我要创建一个允许用户更新帐户的用户配置文件组件,所以当我输入新的详细信息时,我创建了配置文件更新表单,我得到没有 user_id

public $users, $name, $email, $user_id, $creator_name, $creator_bio;
    public $updateMode = false;

    private function resetInputFields(){
        $this->name = '';
        $this->email = '';
        $this->creator_name = '';
        $this->creator_bio = '';
    }


    public function edit($id)
    {
        $this->updateMode = true;
        $user = User::where('id',$id)->first();
        $this->user_id = $id;
        $this->name = $user->name;
        $this->email = $user->email;
        $this->creator_name = $user->creator_name;
        $this->creator_bio = $user->creator_bio;

    }

    public function cancel()
    {
        $this->updateMode = false;
        $this->resetInputFields();


    }

    public function update()
    {
        $validatedDate = $this->validate([
            'name' => 'required',
            'email' => 'required|email',
        ]);

        if ($this->user_id) {
            dd('There is a user id');
            $user = User::find($this->user_id);
            $user->update([
                'name' => $this->name,
                'email' => $this->email,
            ]);
            $this->updateMode = false;
            session()->flash('message', 'Users Updated Successfully.');
            $this->resetInputFields();

        } else {
             dd('There is NOT a user id');
        }
    }
    // public function delete($id)
    // {
    //     if($id){
    //         User::where('id',$id)->delete();
    //         session()->flash('message', 'Users Deleted Successfully.');
    //     }
    // }
    public function render()
    {
        return view('livewire.profile-update');
    }

这是我的个人资料更新表单,当我单击更新时没有发生任何事情,并且我正在正确传递 livewire 脚本

<div>
<form>
    <div class="form-group">
        <input type="hidden" wire:model="user_id">
        <label for="exampleFormControlInput1">Name</label>
        <input type="text" class="form-control" wire:model="name" id="exampleFormControlInput1" placeholder="Enter Name">
        @error('name') <span class="text-danger">{{ $message }}</span>@enderror
    </div>
    <div class="form-group">
        <input type="hidden" wire:model="user_id">
        <label for="exampleFormControlInput1">Creator Name</label>
        <input type="text" class="form-control" wire:model="creator_name" id="exampleFormControlInput1" placeholder="Enter Name">
        @error('creator_name') <span class="text-danger">{{ $message }}</span>@enderror
    </div>
    <div class="form-group">
        <input type="hidden" wire:model="user_id">
        <label for="exampleFormControlInput1">Creator Bio</label>
        <input type="text" class="form-control" wire:model="creator_bio" id="exampleFormControlInput1" placeholder="Enter Name">
        @error('creator_bio') <span class="text-danger">{{ $message }}</span>@enderror
    </div>
    <div class="form-group">
        <label for="exampleFormControlInput2">Email address</label>
        <input type="email" class="form-control" wire:model="email" id="exampleFormControlInput2" placeholder="Enter Email">
        @error('email') <span class="text-danger">{{ $message }}</span>@enderror
    </div>
    <button wire:click.prevent="update()" class="btn btn-dark">Update</button>
    <button wire:click.prevent="cancel()" class="btn btn-danger">Cancel</button>
</form>
</div>

【问题讨论】:

    标签: laravel laravel-8 laravel-livewire


    【解决方案1】:

    您必须在 User 类中实现可填充或受保护的受保护属性

    protected $fillable = [
       'name','email'
    ];
    
    // or
    
    protected $guarded = [];
    

    【讨论】:

    • 我已经更新了我的问题,我 dd('user_id') 我没有通过 user_id
    • 你能把整个组件作为它的刀片发布吗?
    猜你喜欢
    • 2021-02-24
    • 2023-01-30
    • 2018-12-27
    • 1970-01-01
    • 2021-01-24
    • 2022-01-07
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多