Laravel Livewire同步($request->;input)

Laravel Livewire同步($request->;input),laravel,laravel-livewire,Laravel,Laravel Livewire,这是我的密码。请有人帮助我如何在livewire中使用请求->输入 public function modelData() { $user = User::create([ 'name' => $this->name, 'npm' => $this->npm, 'email' => $this->email, 'jurusan' => $this->jurusan,

这是我的密码。请有人帮助我如何在livewire中使用请求->输入

public function modelData()
{
    $user = User::create([
        'name' => $this->name,
        'npm' => $this->npm,
        'email' => $this->email,
        'jurusan' => $this->jurusan,
        'fakultas' => $this->fakultas,
        'password' => Hash::make($this->password),

    ]);
    $user->roles()->sync($this->input('roles', []));
}
/** *已映射模型的数据 *在这个组件中。 * *@返回无效 */

这是我的livewire用户ManaJemen,我在创建中更改角色,在公共中添加角色=[]

public function modelData()
    {
        $user = User::create([
            'name' => $this->name,
            'npm' => $this->npm,
            'email' => $this->email,
            'jurusan' => $this->jurusan,
            'fakultas' => $this->fakultas,
            'password' => Hash::make($this->password),

        ]);
        $user->roles()->sync($this->role);
    }
}

非农产品市场准入:
@错误('name'){{$message}}@enderror
Npm:
@错误('npm'){{$message}}@enderror
电邮:
@错误('email'){{$message}}@enderror
密码:
@错误('password'){{$message}}@enderror
朱鲁桑:
@错误('jurusan'){{$message}}@enderror
Fakultas:
@错误('fakultas'){{$message}}@enderror
角色
@foreach($id=>$role的角色)
{{$role}}
@endforeach
@错误('角色')

{{$message}

@恩德罗
这是我创建的刀片文件
我在livewire和刀片服务器中进行了更改,但仍然存在错误,但用户添加了

为什么要使用请求

您可以添加一个属性,如
public roles=[]类中的代码>

并使用select/checkbox绑定此属性,即:

然后您可以像这样使用sync:
$user->roles()->sync($this->roles)

PS:我假设你已经定义了多对多关系


为什么要使用请求

您可以添加一个属性,如
public roles=[]类中的代码>

并使用select/checkbox绑定此属性,即:

然后您可以像这样使用sync:
$user->roles()->sync($this->roles)

PS:我假设你已经定义了多对多关系


嘿,谢谢你的回答,我照你说的做,但是像这样的错误'TypeError参数1传递给Illumb\Database\Eloquent\Builder::create()必须是数组类型,给定null,在'but users is added@Claymore's'中调用!你定义了所有的属性吗?我可以看看你的控制器和刀片模板吗?我在那里添加了我的代码@Claymore,但没有看到你的错误,这很难理解。我想你们已经在角色和用户模型中定义了归属关系,然后创建了透视表。现在,在用户组件类(app/http/livewire)中,您应该将公共属性角色定义为数组,并在
user create
方法中,在创建用户后,您应该
sync
角色附加到该用户。在resources/view/livewire中,在“用户创建”视图中选择“应绑定角色”属性。一切都应该正常。嘿,谢谢你的回答,我照你说的做,但是像这样的错误'TypeError参数1传递给Illumb\Database\Eloquent\Builder::create()必须是数组类型,给定null,调用'but users is added@Claymore!你定义了所有的属性吗?我可以看看你的控制器和刀片模板吗?我在那里添加了我的代码@Claymore,但没有看到你的错误,这很难理解。我想你们已经在角色和用户模型中定义了归属关系,然后创建了透视表。现在,在用户组件类(app/http/livewire)中,您应该将公共属性角色定义为数组,并在
user create
方法中,在创建用户后,您应该
sync
角色附加到该用户。在resources/view/livewire中,在“用户创建”视图中选择“应绑定角色”属性。一切正常。首先,在
create()
方法中,您不需要调用
User::create()
,因为您已经在
modelData()
中调用了它,其次,
modelData()
正在执行所有创建用户和同步的功能。所以只需调用
$this->modelData()而不是
User::create($this->modelData())
或将
modelData()
方法重命名为
create()
首先,在
create()
方法中,您不需要调用
User::create()
,因为您已经在
modelData()
中调用了它,然后再调用
modelData()
正在执行所有创建用户和同步的功能。因此只需调用
$this->modelData()而不是
User::create($this->modelData())或将
modelData()
方法重命名为
create()
public function modelData()
    {
        $user = User::create([
            'name' => $this->name,
            'npm' => $this->npm,
            'email' => $this->email,
            'jurusan' => $this->jurusan,
            'fakultas' => $this->fakultas,
            'password' => Hash::make($this->password),

        ]);
        $user->roles()->sync($this->role);
    }
}
   <form>
            <div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
                <div class="">
                    <div class="mb-4">
                        <label for="name" class="block text-gray-700 text-sm font-bold mb-2">Nama:</label>
                        <input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="name" wire:model="name">
                        @error('name') <span class="text-red-500">{{ $message }}</span>@enderror
                    </div>
                    <div class="mb-4">
                        <label for="npm" class="block text-gray-700 text-sm font-bold mb-2">Npm:</label>
                        <input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="npm" wire:model="npm">
                        @error('npm') <span class="text-red-500">{{ $message }}</span>@enderror
                    </div>
                    <div class="mb-4">
                        <label for="email" class="block text-gray-700 text-sm font-bold mb-2">Email:</label>
                        <input type="email" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="email" wire:model="email">
                        @error('email') <span class="text-red-500">{{ $message }}</span>@enderror
                    </div>
                    <div class="mb-4">
                        <label for="password" class="block text-gray-700 text-sm font-bold mb-2">Password:</label>
                        <input type="password" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="password" wire:model="password">
                        @error('password') <span class="text-red-500">{{ $message }}</span>@enderror
                    </div>
                    <div class="mb-4">
                        <label for="jurusan" class="block text-gray-700 text-sm font-bold mb-2">Jurusan:</label>
                        <input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="jurusan" wire:model="jurusan">
                        @error('jurusan') <span class="text-red-500">{{ $message }}</span>@enderror
                    </div>
                    <div class="mb-4">
                        <label for="fakultas" class="block text-gray-700 text-sm font-bold mb-2">Fakultas:</label>
                        <input type="text" class="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" id="fakultas" wire:model="fakultas">
                        @error('fakultas') <span class="text-red-500">{{ $message }}</span>@enderror
                    </div>
                    <div class="px-4 py-5 bg-white sm:p-6">
                        <label for="role" class="block font-medium text-sm text-gray-700">Roles</label>
                        <select wire:model = "role" name="role" id="role" class="form-multiselect block rounded-md shadow-sm mt-1 block w-full" multiple="multiple">
                            @foreach($roles as $id => $role)
                                <option value="{{ $id }}"{{ in_array($id, old('roles', [])) ? ' selected' : '' }}>{{ $role }}</option>
                            @endforeach
                        </select>
                        @error('roles')
                            <p class="text-sm text-red-600">{{ $message }}</p>
                        @enderror
                    </div>
                </div>
            </div>