Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel 4.2中的required_if值中使用正则表达式_Php_Regex_Laravel_Validation_Laravel 4 - Fatal编程技术网

Php 如何在Laravel 4.2中的required_if值中使用正则表达式

Php 如何在Laravel 4.2中的required_if值中使用正则表达式,php,regex,laravel,validation,laravel-4,Php,Regex,Laravel,Validation,Laravel 4,我有两个字段,分别是var1和var2。这两个字段都是我想要的文本字段。如果var2包含一个单词\uuu tocken\uu,则需要字段var1 我试过了,但没用 $validator = Validator::make( ['var1' => 'required_if:var2,regex:/__tocken_/'] //['var2' => ['required', 'regex:/__tocken_/']] //<--Regex is working fi

我有两个字段,分别是
var1
var2
。这两个字段都是我想要的文本字段。如果var2包含一个单词
\uuu tocken\uu
,则需要字段
var1

我试过了,但没用

$validator = Validator::make(
    ['var1' => 'required_if:var2,regex:/__tocken_/']
    //['var2' => ['required', 'regex:/__tocken_/']] //<--Regex is working fine here
);
所以我的问题是,如果验证规则required\u中的regex可能不是准确的值吗

var2的样本可能值

  • 你好
    \uuuuu FIRST\uuu NAME\uuuuuuuuuuuuuuuu
    ,lorem ispam
    \uuuuuuuuuuuuuu tocken\Ur1vG6xK\uuuuuuuuu
  • lorem ispam
    \uuuuuuu tocken\u456vg6xk\uuuuu
    lorem
    \uuuuuuuuuu tocken\u57kq6xk\uuuu
  • lorem ispam。。诸如此类
查看:

$validator->sometimes('var2', 'required', function ($input) {
    return (bool) preg_match('/__tocken_/', $input->var1);
});

也许你需要@BagusTesa:是的,我可以通过自定义验证来完成,但我一直在寻找更内置的方法。我认为你应该为
var2
制定验证规则,例如:
['var2'=>'有时| regex:/| tocken/| required| with:var1']
谢谢@revo;对于您的建议,
var2
是完全可选的,只有当它具有上述模式时才需要
var1
。因此,我向
var1
添加了验证。此外,我无法提出您对工作的建议。因为这是可选的,所以您有时必须使用
规则。如果它有一个值,那么它应该包含
\uuu tocken\uu
,以使
var1
也成为必填字段。谢谢你的回答,但我无法使它工作。
$validator->sometimes('var2', 'required', function ($input) {
    return (bool) preg_match('/__tocken_/', $input->var1);
});