Files
eatvio-infra/app/Rules/MinWords.php
2024-01-15 01:05:10 +03:00

28 lines
573 B
PHP

<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class MinWords implements Rule
{
protected int $minWords;
public function __construct(int $minWords)
{
$this->minWords = $minWords;
}
public function passes(mixed $attribute, mixed $value): bool|int
{
$wordCount = count(preg_split('/\W+/u', $value, -1, PREG_SPLIT_NO_EMPTY));
return $wordCount >= $this->minWords;
}
public function message(): string
{
return "The :attribute must have at least {$this->minWords} words.";
}
}