Laravel Livewire同步($request->;input)
这是我的密码。请有人帮助我如何在livewire中使用请求->输入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,
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>