return 验证规则和消息如何作为 JSON for API in laravel 8
how return validation rules and messages as JSON for API in laravel 8
我正在构建一个 API,我想使用表单请求验证输入字段。
我不知道如何 return 在控制器的存储方法中 json 消息和规则
我希望在字段重复或为空时进行验证。
并且当 return $message
和 $rules
json 与 return response()->json($message)
给出错误并说:TypeErrors : Arguments 2 passed , must be of the type array , object given
我检查了这个 link 但它没有帮助 https://laracasts.com/discuss/channels/laravel/how-to-send-validation-errors-as-json-to-view
我的商店类别请求:
public function rules()
{
$rules = [
'parent_id' => ['sometimes', 'required' , 'numeric'],
'description'=>['required','max:500'],
'status'=>['required'],
];
if($this->method() == 'POST'){
$rules['title'] = ['required','max:20', Rule::unique('categories')];
}else{
$rules['title'] = ['required','max:20' ,Rule::unique('categories')->ignore($this->category['id'])];
}
return $rules;
}
public function messages()
{
$message=[
'title.unique'=>'عنوان نباید تکراری باشد',
'title.required'=>'لطفا عنوان را وارد کنید',
'title.max'=>'تعداد حروف عنوان نباید بیشتر از ۲۰ باشد',
'description.required'=>'لطفا توضیحات را وارد کنید',
'description.max'=>'تعداد حروف توضیحات نباید بیشتر از ۵۰۰ باشد',
'status.required'=>'لطفا وضعیت مورد نظر خود را انتخاب کنید' ,
];
return array_merge(parent::messages(), $message);
}
}
这是我在 CategoryController 中的存储方法:
public function store(StoreCategoryRequest $request)
{
$validatedData = $request->all();
$category = Category::create($validatedData);
return response()->json([
"success" => true,
"message" => "successful",
"data" => $category
]);
}
谢谢你:***
不必将验证消息传递给 JSON 响应。当验证失败时 Laravel 将自动 return 响应错误并且不会继续执行控制器中的代码。
还有 pre-defined 条验证错误消息也可以本地化。您可以在 resources/lang/en/validation.php 中找到它们 - 考虑将您的自定义消息也放在那里。
要将验证错误检索为 JSON,请在请求的 header 中添加值为 [= 的键 Accept 23=]
我正在构建一个 API,我想使用表单请求验证输入字段。
我不知道如何 return 在控制器的存储方法中 json 消息和规则
我希望在字段重复或为空时进行验证。
并且当 return $message
和 $rules
json 与 return response()->json($message)
给出错误并说:TypeErrors : Arguments 2 passed , must be of the type array , object given
我检查了这个 link 但它没有帮助 https://laracasts.com/discuss/channels/laravel/how-to-send-validation-errors-as-json-to-view
我的商店类别请求:
public function rules()
{
$rules = [
'parent_id' => ['sometimes', 'required' , 'numeric'],
'description'=>['required','max:500'],
'status'=>['required'],
];
if($this->method() == 'POST'){
$rules['title'] = ['required','max:20', Rule::unique('categories')];
}else{
$rules['title'] = ['required','max:20' ,Rule::unique('categories')->ignore($this->category['id'])];
}
return $rules;
}
public function messages()
{
$message=[
'title.unique'=>'عنوان نباید تکراری باشد',
'title.required'=>'لطفا عنوان را وارد کنید',
'title.max'=>'تعداد حروف عنوان نباید بیشتر از ۲۰ باشد',
'description.required'=>'لطفا توضیحات را وارد کنید',
'description.max'=>'تعداد حروف توضیحات نباید بیشتر از ۵۰۰ باشد',
'status.required'=>'لطفا وضعیت مورد نظر خود را انتخاب کنید' ,
];
return array_merge(parent::messages(), $message);
}
}
这是我在 CategoryController 中的存储方法:
public function store(StoreCategoryRequest $request)
{
$validatedData = $request->all();
$category = Category::create($validatedData);
return response()->json([
"success" => true,
"message" => "successful",
"data" => $category
]);
}
谢谢你:***
不必将验证消息传递给 JSON 响应。当验证失败时 Laravel 将自动 return 响应错误并且不会继续执行控制器中的代码。
还有 pre-defined 条验证错误消息也可以本地化。您可以在 resources/lang/en/validation.php 中找到它们 - 考虑将您的自定义消息也放在那里。
要将验证错误检索为 JSON,请在请求的 header 中添加值为 [= 的键 Accept 23=]