【发布时间】:2017-10-01 03:32:50
【问题描述】:
你好:我正在用 Laravel 写一个 api。
当我尝试在控制器中使用请求验证时,我得到一个不允许的 405 方法。当我删除请求验证时,一切运行顺利。
这是我的路线:
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.'
];
}
}
当我从“create”方法中删除“CreateProduct $request”时,一切正常。
如何使用 Laravel 的请求验证进行 api 调用?
【问题讨论】: