Laravel API请求验证 [英] Laravel API Request Validation
本文介绍了Laravel API请求验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好:我正在用Laravel编写一个api.
Hello: I am writing an api with Laravel.
当我尝试在控制器中使用请求验证时,出现了405方法不被允许的情况.当我删除请求验证时,一切都会顺利进行.
When I try to use request validation in the controller, I get a 405 method not allowed. When I remove the request validation, everything runs smoothly.
这是我的路线:
Route::post('product/create', 'Api\v1\ProductController@create');
这是我的控制人:
<?php
namespace App\Http\Controllers\Api\v1;
use App\Http\Requests\CreateProduct;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Handlers\Products;
use Illuminate\Support\MessageBag;
class ProductController extends Controller
{
/**
* Create Product.
*/
public function create(CreateProduct $request)
{
echo 'product created...';
}
}
这是我的请求验证者:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CreateProduct extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'title' => 'required',
'price' => 'required',
'short_description' => 'required'
];
}
/**
* Set custom validation messages.
*
* @return array
*/
public function messages()
{
return [
'title.required' => 'Please enter a title.',
'price.required' => 'Please enter a price.',
'short_description.required' => 'Please enter a short description.'
];
}
}
当我从创建"方法中删除"CreateProduct $ request"时,一切正常.
When I remove "CreateProduct $request" from the "create" method, everything works.
如何将Laravel的请求验证用于api调用?
How can I use Laravel's request validation for api calls?
推荐答案
在产品控制器中设置验证.
Set validation in Product Controller.
public function create(Request $request)
{
$rules=array(
'title' => 'required',
'price' => 'required',
'short_description' => 'required'
);
$messages=array(
'title.required' => 'Please enter a title.',
'price.required' => 'Please enter a price.',
'short_description.required' => 'Please enter a short description.'
);
$validator=Validator::make($request->all(),$rules,$messages);
if($validator->fails())
{
$messages=$validator->messages();
$errors=$messages->all();
return $this->respondWithError($errors,500);
}
echo 'product created...';
}
这篇关于Laravel API请求验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文