首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel验证规则required_if另一个字段值在数组中,不起作用

是指在使用Laravel框架进行表单验证时,当指定字段的值在给定的数组中时,required_if规则无法正常工作的情况。

在Laravel中,required_if规则用于指定某个字段在满足特定条件时必须存在。通常情况下,我们可以使用required_if规则来验证某个字段是否必填,但是当需要判断字段的值是否在一个数组中时,有时候required_if规则可能会出现不起作用的情况。

解决这个问题的方法是使用自定义验证规则。我们可以通过创建自定义验证规则来实现对字段值是否在数组中的验证。下面是一个示例的自定义验证规则的代码:

代码语言:txt
复制
namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class InArray implements Rule
{
    protected $array;

    public function __construct($array)
    {
        $this->array = $array;
    }

    public function passes($attribute, $value)
    {
        return in_array($value, $this->array);
    }

    public function message()
    {
        return 'The selected :attribute is invalid.';
    }
}

然后,在进行表单验证时,我们可以使用这个自定义验证规则来验证字段的值是否在数组中。示例代码如下:

代码语言:txt
复制
use App\Rules\InArray;

$request->validate([
    'field1' => [
        'required_if:field2,' . implode(',', $array),
        new InArray($array)
    ],
]);

在上面的代码中,我们首先使用required_if规则来判断字段的值是否在数组中,然后使用自定义验证规则InArray来进一步验证字段的值是否在数组中。

这样,就可以解决Laravel验证规则required_if另一个字段值在数组中不起作用的问题。

关于Laravel的表单验证规则和自定义验证规则的更多信息,可以参考腾讯云的Laravel文档:Laravel 表单验证

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • varchar2和varchar2(char)_datetime数据类型

    大家好,又见面了,我是你们的朋友全栈君。char varchar varchar2 的区别 区别: 1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc”,对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 2.CHAR的效率比VARCHAR2的效率稍高。 3. 目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。

    03
    领券