Skip to content

Commit

Permalink
Merge pull request #5589 from Laravel-Backpack/fix-validation
Browse files Browse the repository at this point in the history
Fix validation `$attributes` getting values from wrong variable
  • Loading branch information
pxpm authored Aug 1, 2024
2 parents 6b9c540 + a477fc0 commit 3c867c2
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/app/Library/CrudPanel/Traits/Validation.php
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ public function mergeRequestAndFieldRules($request, $rules = null, $messages = n
{
$rules = $rules ?? $this->getOperationSetting('validationRules') ?? [];
$messages = $messages ?? $this->getOperationSetting('validationMessages') ?? [];
$attributes = $messages ?? $this->getOperationSetting('validationAttributes') ?? [];
$attributes = $attributes ?? $this->getOperationSetting('validationAttributes') ?? [];

$request = (new $request)->createFrom($this->getRequest());
$extendedRules = $this->mergeRules($request, $rules);
Expand Down
29 changes: 29 additions & 0 deletions tests/Unit/CrudPanel/CrudPanelValidationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,35 @@ public function testItMergesFieldValidationWithRequestValidation()
$this->assertEquals(['email'], array_keys($this->crudPanel->getOperationSetting('validationRules')));
}

public function testItCanGetTheValidationAttributesFromFields()
{
$this->crudPanel->addField([
'name' => 'email',
'validationAttribute' => 'emailed',
]);

$this->crudPanel->setValidation();

$this->assertEquals(['email' => 'emailed'], $this->crudPanel->getOperationSetting('validationAttributes'));
}

public function testItCanGetTheValidationAttributesFromSubfields()
{
$this->crudPanel->addField([
'name' => 'email',
'subfields' => [
[
'name' => 'test',
'validationAttribute' => 'emailed',
],
],
]);

$this->crudPanel->setValidation();

$this->assertEquals(['email.*.test' => 'emailed'], $this->crudPanel->getOperationSetting('validationAttributes'));
}

public function testItMergesAllKindsOfValidation()
{
$this->crudPanel->setModel(User::class);
Expand Down

0 comments on commit 3c867c2

Please sign in to comment.