我想仅在存在其他字段时验证字段。
这是我当前的实现,可以说明我想要做什么。
仅当 campaign_id 存在时,才需要在 campaign_lead_id 上执行唯一验证。其他方面,会抛出查询异常,因为$params['campaign_id']
为空。
$params = [
'campaign_id' => '',
'campaign_lead_id' => '23'
];
$customCampaignLeadRule = (empty($params['campaign_id'])
? ''
: '|unique:leads,campaign_lead_id,null,id,campaign_id,' . $params['campaign_id']
);
$rules = [
'campaign_id' => 'required',
'campaign_lead_id' => 'bail|required' . $customCampaignLeadRule,
];
$validator = $this->validator->make($params, $rules);
P.S。我知道bail
和required_if
。我需要的不是required_if
,因为我不仅在需要其他字段时总是需要campaign_lead_id
。我的实现对我有用,但我认为这不是最正确的方法。