Validation
prepareForValidation
<?php
use Illuminate\Validation\Rule;
use Smake\Common\Http\Requests\Request;
class EditUserRequest extends Request
{
protected function prepareForValidation()
{
parent::prepareForValidation();
$this->merge([
'nickname' => $this->input('nickname', '') . ' with Love',
]);
}
}
Rule::unique with ignore method on update
Adding a record:
<?php
use Illuminate\Validation\Rule;
use Smake\Common\Http\Requests\Request;
class AddUserRequest extends Request
{
public function rules()
{
return [
'email' => [
'required',
'email:strict',
'max:255',
Rule::unique('users', 'email'),
],
];
}
}
Update an existing record:
<?php
use Illuminate\Validation\Rule;
use Smake\Common\Http\Requests\Request;
class EditUserRequest extends Request
{
public function rules()
{
return [
'email' => [
'required',
'email:strict',
'max:255',
Rule::unique('users', 'email')->ignore($this->route('userId')),
],
];
}
}
passedValidation
<?php
use Illuminate\Validation\Rule;
use Smake\Common\Http\Requests\Request;
class EditUserRequest extends Request
{
protected function passedValidation()
{
$this->merge([
'nickname' => $this->input('nickname', '') . '❤️',
]);
$this->getValidatorInstance()->setData(
collect($this->input())
->only(collect($this->rules()]->keys())
->all()
);
}
}