只有当另一个值存在时,laravel才会生效

时间:2017-01-18 05:36:08

标签: php laravel laravel-5 laravel-validation

我想仅在存在其他字段时验证字段。

这是我当前的实现,可以说明我想要做什么。 仅当 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。我知道bailrequired_if。我需要的不是required_if,因为我不仅在需要其他字段时总是需要campaign_lead_id。我的实现对我有用,但我认为这不是最正确的方法。

0 个答案:

没有答案