Php 如何在Laravel中使用所需的验证?

Php 如何在Laravel中使用所需的验证?,php,json,laravel,Php,Json,Laravel,我真的很想知道如果JSON上有required\u,我该如何使用 我仍然对API的概念感到困惑,但我必须完成我的任务,我在我的控制器上添加了验证,但它不起作用 公共功能StoreReqSchedule(请求$Request){ $this->validate([ “reqtype”=>“必需”, 'startdate'=>'required', “enddate”=>“必需”, 'reason'=>'必填\u如果:reqtype,==,请求休假', '路由'=>'必需\u如果:请求类型,==,请

我真的很想知道如果
JSON
上有
required\u,我该如何使用

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

公共功能StoreReqSchedule(请求$Request){
$this->validate([
“reqtype”=>“必需”,
'startdate'=>'required',
“enddate”=>“必需”,
'reason'=>'必填\u如果:reqtype,==,请求休假',
'路由'=>'必需\u如果:请求类型,==,请求计划',
'actualschedule'=>'必填\u如果:reqtype,==,更改计划',
'changetoschedule'=>'required\如果:reqtype,==,Change schedule',
“交换布线”=>“必需”\u如果:reqtype,==,交换计划“,
'swapcrewschedule'=>'required\u如果:reqtype,==,Swap Schedule',
“注意”=>“必需”
]);
// ...
}
如果需要,这是正确的使用方法吗

****编辑**

每个
API端点
由以下参数组成:

  • 申请时间表:

  • 请求类型

  • 开始日期

  • 结束日期

  • 原因(如果请求类型为请求日,则为必填项)

  • 路由(如果请求类型为请求计划,则为必填项)

  • 实际计划(如果请求类型变更计划,则为强制性)

  • 更改计划(如果请求类型更改计划,则必须更改)

  • 交换机组id(如果请求类型为交换计划,则为必填项)

  • 交换机组计划(如果请求类型为交换计划,则为强制性)

  • 上面的列表就是我的任务,我很难理解如何为必填的if request type request Day of of和其他必填的ofc编写代码


    错误例外:声明 App\Http\Controllers\B777Controller::validate($request)应为 兼容 App\Http\Controllers\Controller::validate(照亮\Http\Request $request,array$规则,array$消息=array,array $customAttributes=Array)>>这是错误


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

    $this->validate($request[
    “reqtype”=>“必需”,
    'startdate'=>'required',
    “enddate”=>“必需”,
    'reason'=>'必填\u如果:reqtype,==,请求休假',
    '路由'=>'必需\u如果:请求类型,==,请求计划',
    'actualschedule'=>'必填\u如果:reqtype,==,更改计划',
    'changetoschedule'=>'required\如果:reqtype,==,Change schedule',
    “交换布线”=>“必需”\u如果:reqtype,==,交换计划“,
    'swapcrewschedule'=>'required\u如果:reqtype,==,Swap Schedule',
    “注意”=>“必需”
    ]);
    

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

    $this->validate($request[
    “reqtype”=>“必需”,
    'startdate'=>'required',
    “enddate”=>“必需”,
    'reason'=>'必填\u如果:reqtype,==,请求休假',
    '路由'=>'必需\u如果:请求类型,==,请求计划',
    'actualschedule'=>'必填\u如果:reqtype,==,更改计划',
    'changetoschedule'=>'required\如果:reqtype,==,Change schedule',
    “交换布线”=>“必需”\u如果:reqtype,==,交换计划“,
    'swapcrewschedule'=>'required\u如果:reqtype,==,Swap Schedule',
    “注意”=>“必需”
    ]);
    

    我认为您没有传递$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'
        ]);
        // ...
    }
    

    我认为您没有传递$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'
        ]);
        // ...
    }
    

    如果有三种类型的请求,该怎么办?我没听清楚:(我可以在这里张贴图片吗?我不知道如何解释它:(您不能在评论中发布图片。如果您的问题与此问题不同,您最好修改您的问题或创建一个新问题。请查看我所做的编辑。非常感谢您的帮助,如果有三种类型的请求类型,该如何处理?我没有收到您的回复:(我可以在这里发布图片吗?我不确定如何解释它:(您不能在评论中发布图片。如果您的问题与此问题不同,您最好修改您的问题或创建一个新问题。请检查我所做的编辑,好吗?非常感谢您的帮助错误例外:声明App\Http\Controllers\B777Controller::validate($request)应与App\Http\Controllers\Controller::validate兼容(照亮\Http\Request$Request,数组$rules,数组$messages=array,数组$customAttributes=array)>>这是错误例外:App\Http\Controllers\B777Controller::validate($Request)的声明应与App\Http\Controllers\Controller::validate兼容(Illumb\Http\Request$Request,array$rules,array$messages=array,array$customAttributes=array)>>这是一个错误我还没有完成它,但非常感谢您帮助我完成它!:)我还没有完成它,但非常感谢您帮助我完成它!:)