gpt4 book ai didi

php - Laravel API 请求验证

转载 作者:行者123 更新时间:2023-12-04 13:23:51 24 4
gpt4 key购买 nike

你好:我正在用 Laravel 写一个 api。

当我尝试在 Controller 中使用请求验证时,我得到一个 405 方法不允许。当我删除请求验证时,一切运行顺利。

这是我的路线:

Route::post('product/create', 'Api\v1\ProductController@create');

这是我的 Controller :
<?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 调用?

最佳答案

在产品 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...';
}

关于php - Laravel API 请求验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43757718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com