Skip to content

Commit 8b8e6ca

Browse files
committed
add ability to retrieve specific keys from validationData and validationRules
1 parent e5fc24c commit 8b8e6ca

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

src/ValidatesAttributes.php

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace StevenFox\LaravelModelValidation;
44

55
use Illuminate\Database\Eloquent\Model;
6+
use Illuminate\Support\Arr;
67
use Illuminate\Validation\Rule;
78
use Illuminate\Validation\Rules\Unique;
89
use Illuminate\Validation\ValidationException;
@@ -204,11 +205,17 @@ protected function afterMakingValidator(Validator $validator): void
204205
//
205206
}
206207

207-
public function validationData(): array
208+
public function validationData(array|string|null $keys = null): array
208209
{
209-
return $this->prepareAttributesForValidation(
210+
$data = $this->prepareAttributesForValidation(
210211
$this->rawAttributesForValidation()
211212
);
213+
214+
if (! $keys) {
215+
return $data;
216+
}
217+
218+
return Arr::only($data, $keys);
212219
}
213220

214221
protected function rawAttributesForValidation(): array
@@ -221,7 +228,18 @@ protected function prepareAttributesForValidation(array $rawAttributes): array
221228
return $rawAttributes;
222229
}
223230

224-
public function validationRules(): array
231+
public function validationRules(array|string|null $keys = null): array
232+
{
233+
$rules = $this->combinedValidationRules();
234+
235+
if (! $keys) {
236+
return $rules;
237+
}
238+
239+
return Arr::only($rules, $keys);
240+
}
241+
242+
protected function combinedValidationRules(): array
225243
{
226244
// If the developer has set superseding validation rules for the model,
227245
// we will use those exclusively.

0 commit comments

Comments
 (0)