Я привязываюсь непосредственно к свойству модели. Я не могу отправить форму, так как в одном компоненте livewire есть две формы. 1-я форма предназначена для редактирования пользователя, состоящего из name
, email
, role
, а 2-я форма предназначена для приглашения пользователя, состоящего из email
.
Я не могу отправить форму, так как я совместно изложил правила для обеих форм в соответствии с правилами защищенной собственности. Поэтому, когда я пытаюсь отредактировать пользователя, используя первую форму, он также проверяет поле email
, которое присутствует в форме приглашения. Как я могу заставить его работать в этой структуре.
- Приложение\Http\Livewire\UserController.php
public $showUserManagementModal = false;
public $showUserInvitationModal = false;
public User $user;
public Invitation $invitation;
protected function rules() {
if ($showUserManagementModal = true)
return [
'user.name' => 'required | string | max:255',
'user.email' => 'required | string | email | max:255',
'role' => 'required',
];
if ($showUserInvitationModal = true)
return [
'invitation.email' => 'required | string | email | max:255 | unique:invitations,email',
];
}
public function createInvitation() {
$this -> useCachedRows();
$this -> resetValidation();
$this -> invitation = new Invitation();
$this -> showUserInvitationModal = true;
}
public function saveInvitation() {
$this -> validate();
$this -> invitation -> generateInvitationToken();
$this -> invitation -> save();
$this -> showUserInvitationModal = false;
}
public function manageUser(User $user) {
$this -> useCachedRows();
$this -> resetValidation();
$this -> user = $user;
$this -> role = $user -> roles -> pluck('id');
$this -> showUserManagementModal = true;
}
public function saveUser() {
$this -> validate();
$this -> validate([
'user.email' => 'unique:users,email,'.$this -> user -> id,
]);
$this -> user -> roles() -> sync($this -> role);
$this -> user -> save();
$this -> showUserManagementModal = false;
$this -> dispatchBrowserEvent('notify', $this -> user -> name.' Updated Successfully');
}
rules()
, вы присваиваете значениеtrue
переменной$showUserManagementModal
. Если бы вы хотели сделать сравнение, это был бы другой оператор, и он потерпел бы неудачу, потому что вы нигде не определили переменную. Вы также нигде не используете этот метод. - person miken32   schedule 23.12.2020$showUserManagementModal
с false на true, когда администратор пытается управлять пользователем. - person ToxifiedHashkey   schedule 23.12.2020