我现在正在创建一个至少需要两个目的的入口点。
我的api.php
Route::post('/action', 'Api\ActionApiController@process')->name('action');
此网址将接受json类型的帖子数据。基于这个json,我将有不同的验证需要对这个json数据采用不同的方式。
例如
{
"type" : 1,
"data1" : "B",
"data2" : "C"
}
逻辑应该像这样
如果type == 1则data1是必需的,data2是可选的。但是如果type == 2则data1是可选的,data2是必需的。
到目前为止,我创建了两个具有不同验证功能的自定义请求,因为如果type
需要扩展,我不想让许多验证功能膨胀
所以我来了两个班级
class Data1Request extends FormRequest {
public function rules()
{
return [
'data1' => 'required',
];
}
}
和另一个班级
class Data2Request extends FormRequest {
public function rules()
{
return [
'data2' => 'required',
];
}
}
最后是我的控制器
public function process(Request $request){
//check type: it is okay for me to put many if here, because this is only casting things to its type
if($request->input('type') == 1) {
//where should I cast my request and validate it?
}
}
那么我应该在哪里以及如何将Request变量转换为自定义类并进行验证呢?或者我应该采用多种方式?
添加了: