On User model, I have a mutator:
public function setPasswordAttribute($password)
{
if ($password != null && $password != '') {
$this->attributes['password'] = bcrypt($password);
}
}
Validation rules on User component:
class Users extends Component
{
...
public User $editing;
public function rules()
{
return [
'editing.name' => ['required', 'string', 'max:255'],
'editing.email' => [
'required',
'string',
'email',
'max:254',
Rule::unique(User::class, 'email')
],
'editing.password' => ['required', 'string', 'min:8']
];
}
public function save()
{
$this->validate(); // Password rule not validate here
$this->editing->save();
$this->showEditModal = false;
}
...
}
Steps to Reproduce:
When create an user and click save, ‘editing.name’ and ‘editing.email’ was validated sucessful, but password rule does not work anymore, example ‘length’ does work, I can create an user with short password ‘123’.
Livewire version: 2.3.1
Laravel version: 8.14
PHP version: 7.4.12
Any ideas why does it not work? Thank you.