0

我必须编写验证规则来验证是否在具有给定值address的行上是唯一的。routing_id这很简单。但在某些情况下,routing_id字段可能是NULL然后我的验证请求规则不起作用。

这是我的规则:

$rules['address']   = 'required|ip|unique:vias,address'.\Route::current()->getParameter('via')->id.',id,routing_id,'.request()->input('routing_id'));

当我用数组中的 as 修补行时,我null希望我在所有具有空字段的行中都是唯一的。但它不起作用。routing_idPOSTaddressrouting_id

我的问题是:如何解决?

4

2 回答 2

0

经过几个小时的研究,我终于找到了问题所在。

通过使用Store Request Validation在 Laravel 中实现,我可以修改 POSTed 参数。在我上面发布的验证规则中,我有

request()->input('routing_id')

这是检索请求参数的FRESH副本,而不是我修改的这些。这就是为什么NULL没有使用我的值的原因——因为我有条件地将一些特殊值与值合并NULL

参数已正确更改,但仅在StoreRequestValidation课堂内。

于 2017-07-12T10:57:00.367 回答
0

您可以先检查 address!=null 然后像这些代码一样进行验证

$this->validate($request,
            [
                'name' => 'required|max:50',
                'lastname' => 'required|max:50',
                'city_id' => 'required',
                'avatar' => 'mimes:jpeg,bmp,png,jpg'
            ]);

        if(isset($request->address))
        {
            $this->validate($request,
                [
                    'address' => 'required|max:150|email|unique:users'
                ]);
        }
于 2018-12-30T07:53:34.673 回答