繁体   English   中英

如何在Laravel中使用required_if验证?

[英]how to use required_if validation in Laravel?

我真的很想知道我应该如何在JSON上使用required_if

我仍然对API的概念感到困惑,但是我必须完成我的任务,我已经在控制器上添加了validation ,但是它不起作用。

public function StoreReqSchedule(Request $request){

    $this->validate([
        'reqtype'=> 'required',
        'startdate' => 'required',
        'enddate' => 'required',
        'reason'=> 'required_if: reqtype,==, Request Day Off',
        'route' => 'required_if: reqtype,==, Request Schedule',
        'actualschedule' => 'required_if:reqtype,==, Change Schedule',
        'changetoschedule'=>'required_if:reqtype,==,Change schedule',
        'swapcrewid'=> 'required_if:reqtype,==,Swap Schedule',
        'swapcrewschedule'=>'required_if:reqtype,==,Swap Schedule',
        'note'=>'required'
    ]);
    // ...
}

这是所需的正确使用方法吗?

****编辑**

每个API endpoint包含以下参数:

  1. 对于请求时间表:

  2. 请求类型

  3. 开始日期

  4. 结束日期

  5. 原因( 如果请求类型为“请求日O ff”,则为必需

  6. 路线( 如果请求类型为“请求时间表”,则为强制

  7. 实际时间表(如果请求类型更改时间表,则为必填)

  8. 更改时间表(如果请求类型为更改时间表,则为必填)

  9. swap-crew-id(如果请求类型为“交换计划”,则必须提供)

  10. swap-crew-schedule(如果请求类型为“ Swap Schedule”,则为必需)

  11. 注意

上面的那些列表是任务, 如果请求类型为Request Day O ff和其他强制性ofc,我很难理解如何编写强制性代码。

ErrorException:App \\ Http \\ Controllers \\ B777Controller :: validate($ request)的声明应与App \\ Http \\ Controllers \\ Controller :: validate(Illuminate \\ Http \\ Request $ request,数组$ rules,数组$ messages = Array兼容,array $ customAttributes = Array)>>这是错误

您只需要删除==,之后的“空白” ==,然后将$request对象传递给validate()方法。 见下文:

$this->validate($request, [
    'reqtype'=> 'required',
    'startdate' => 'required',
    'enddate' => 'required',
    'reason'=> 'required_if:reqtype,==,Request Day Off',
    'route' => 'required_if:reqtype,==,Request Schedule',
    'actualschedule' => 'required_if:reqtype,==,Change Schedule',
    'changetoschedule'=>'required_if:reqtype,==,Change schedule',
    'swapcrewid'=> 'required_if:reqtype,==,Swap Schedule',
    'swapcrewschedule'=>'required_if:reqtype,==,Swap Schedule',
    'note'=>'required'
]);

演示版

我认为您没有通过$ request对象来验证功能

public function StoreReqSchedule(Request $request){

    $this->validate($request,[
        'reqtype'=> 'required',
        'startdate' => 'required',
        'enddate' => 'required',
        'reason'=> 'required_if: reqtype,==, Request Day Off',
        'route' => 'required_if: reqtype,==, Request Schedule',
        'actualschedule' => 'required_if:reqtype,==, Change Schedule',
        'changetoschedule'=>'required_if:reqtype,==,Change schedule',
        'swapcrewid'=> 'required_if:reqtype,==,Swap Schedule',
        'swapcrewschedule'=>'required_if:reqtype,==,Swap Schedule',
        'note'=>'required'
    ]);
    // ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM