Sud*_*ara 8 json web-services laravel laravel-5
在laravel 5我提出了一个新的请求ApiRequest.
class ApiRequest extends Request
{
public function authorize() {
return $this->isJson();
}
public function rules()
{
return [
//
];
}
}
Run Code Online (Sandbox Code Playgroud)
如你所见,我只接受json数据.我正在这样接收控制器中的json
public function postDoitApi(ApiRequest $payload) {
$inputJson = json_decode($payload->getContent());
$name = $inputJson->name;
}
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.我正在获取数据$name.但现在我需要验证输入json.我需要ApiRequest为这个name键设置验证规则
public function rules()
{
return [
'name' => 'required|min:6'
];
}
Run Code Online (Sandbox Code Playgroud)
帮我这样做 谢谢.
您可以使用验证器方法而不是规则方法:
class ApiRequest extends Request
{
public function authorize() {
return $this->isJson();
}
public function validator(){
//$data = \Request::instance()->getContent();
$data = json_decode($this->instance()->getContent());
return \Validator::make($data, [
'name' => 'required|min:6'
], $this->messages(), $this->attributes());
}
//what happens if validation fails
public function validate(){
$instance = $this->getValidatorInstance();
if($this->passesAuthorization()){
$this->failedAuthorization();
}elseif(!$instance->passes()){
$this->failedValidation($instance);
}elseif( $instance->passes()){
if($this->ajax())
throw new HttpResponseException(response()->json(['success' => true]));
}
}
}
Run Code Online (Sandbox Code Playgroud)