【发布时间】:2017-12-16 15:21:31
【问题描述】:
我必须编写验证规则来验证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'));
当我在POST 数组中将null 的行修补为routing_id 时,我希望我的address 在所有routing_id 字段为空的行中是唯一的。但它不起作用。
我的问题是:如何解决?
【问题讨论】:
-
你为什么要连接这个:
address'.\Route::current()->getParameter('via')->id.'其次你在使用 L5.4 吗? -
唯一规则需要:表(
vias)、列(address)、修补时忽略的id(\Route::current()->getParameter('via')->id)、id列的名称(id),然后附加条件:所以我有:routing_id等于给定的routing_id后值。 (项目已经使用L5.3构建,我还没有更新到5.4) -
记住:unique:table,column,except,idColumn 在这种情况下应该是这样的:
$routing_id = \Route::current()->getParameter('via')->id; "required|ip|unique:vias,address,{$routing_id},routing_id" -
你不明白。
routing_id不是我的id专栏。我需要有唯一的address值,其中routing_id为空或具有任何其他值。当routing_id具有除 NULL 以外的任何值时,它可以正常工作。
标签: laravel laravel-5 eloquent laravel-validation laravel-request