Reputation: 17
I really wish to know how am i supposed to use required_if
on JSON
?
I'm still confused about the idea of API but I have to finish my task, I've added the validation
on my controller but it doesn't work.
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'
]);
// ...
}
is this the correct way to use required if?
****EDIT**
Each API endpoint
consist of this parameter:
For Request Schedule:
request-type
start-date
end-date
reason (Mandatory if request type Request Day Off)
route (Mandatory if request type Request Schedule)
actual-schedule (Mandatory if request type Change Schedule)
change-to-schedule (Mandatory if request type Change Schedule)
swap-crew-id (Mandatory if request type Swap Schedule)
swap-crew-schedule (Mandatory if request type Swap Schedule)
note
those lists above is the task, I'm having difficulties to understand how to write the code for Mandatory if request type Request Day Off and the other mandatory ofc.
ErrorException: Declaration of App\Http\Controllers\B777Controller::validate($request) should be compatible with App\Http\Controllers\Controller::validate(Illuminate\Http\Request $request, array $rules, array $messages = Array, array $customAttributes = Array) >> this is the error
Upvotes: 0
Views: 243
Reputation: 2657
You just need to remove the 'white space' after ==,
and pass $request
object to the validate()
method. See below:
$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'
]);
Upvotes: 2
Reputation: 8078
I think you didnt passed $request object to validate function
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'
]);
// ...
}
Upvotes: 0