Чтобы выполнить проверку Laravel значения и убедиться, что оно существует в массиве, вы можете использовать различные методы. Вот несколько примеров:
Метод 1: использование правила in
use Illuminate\Validation\Rule;
$request->validate([
'value' => [
'required',
Rule::in(['value1', 'value2', 'value3']),
],
]);
В этом примере правило in
используется для указания массива допустимых значений. Также добавляется правило required
, обеспечивающее наличие значения.
Метод 2: использование правила in_array
use Illuminate\Contracts\Validation\Rule;
$request->validate([
'value' => [
'required',
function ($attribute, $value, $fail) {
$validValues = ['value1', 'value2', 'value3'];
if (!in_array($value, $validValues)) {
$fail('The selected value is invalid.');
}
},
],
]);
Этот метод предполагает использование специального правила проверки. Функция in_array
используется для проверки существования значения в массиве допустимых значений. Если это не так, возвращается ошибка проверки.
Метод 3. Создание специального правила
use Illuminate\Contracts\Validation\Rule;
class InArray implements Rule
{
protected $validValues;
public function __construct(array $validValues)
{
$this->validValues = $validValues;
}
public function passes($attribute, $value)
{
return in_array($value, $this->validValues);
}
public function message()
{
return 'The selected value is invalid.';
}
}
$request->validate([
'value' => [
'required',
new InArray(['value1', 'value2', 'value3']),
],
]);
В этом методе создается пользовательское правило проверки под названием InArray
. Метод passes
проверяет, существует ли значение в массиве допустимых значений, а метод message
возвращает сообщение об ошибке проверки.