【发布时间】:2016-10-21 07:31:35
【问题描述】:
我正在制作一个 REST API 来验证来自用户的数据输入,为了实现这一点,我制作了一个 Request 类,它具有应该进行验证的 rules 函数。
请求类
class StoreUpdateQuestionRequest extends Request {
public function authorize() {
return true;
}
public function rules() {
$method = $this->method();
$rules = [
'question' => 'required|min:10|max:140',
'active' => 'boolean',
];
return $method !== 'GET' || $method !== 'DELETE' ? $rules : [];
}
}
所以,在控制器中,当我尝试运行一个触发验证的端点时,它确实有效,但它在必要时失败了,但它并没有像我预期的那样向我显示错误,即使我定义了Request 类中包含的 messages 函数中的错误消息,而不是向我显示错误,而是将我重定向到一个位置。这有时是我之前提出的请求的结果,或者它运行/ 路由,很奇怪。
控制器功能
public function store(StoreUpdateQuestionRequest $request) {
$question = new Question;
$question->question = $request->question;
$question->active = $request->active;
if($question->save()) {
$result = [
'message' => 'A question has been added!',
'question' => $question,
];
return response()->json($result, 201);
}
}
有什么想法吗?提前致谢!
【问题讨论】:
-
做 print_r($request->all());die;它返回什么?
-
@HimanshuRaval,尝试在 store 函数的第一条语句中运行该行代码,被重定向到未实现的路由。
标签: php rest validation laravel request