Laravel 请求验证不适用于邮递员请求

Posted

技术标签:

【中文标题】Laravel 请求验证不适用于邮递员请求【英文标题】:Laravel request validation not working for postman request 【发布时间】:2021-04-13 07:18:22 【问题描述】:

对于下面的请求,当 body 参数以 JSON 格式发送时,它总是验证请求(因为没有触发验证规则),但是当以 form-data 或 form-urlencoded 发送时,它会通过验证规则。这是 Laravel 的限制吗?

namespace App\Api\Requests\OrganizationUser;

use App\Api\Constants\PlatformRoles;
use Framework\Http\Requests\APIFormRequest;

class CreateNewUserRequest extends APIFormRequest

    /**
     * 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 [
            'name' => 'bail|required|string|max:255',
            'access' => 'present|array',
            'access.*.access_type' => ['bail', 'sometimes', 'string'],
            'access.*.id' => ['bail', 'sometimes', 'string']
        ];
    

【问题讨论】:

【参考方案1】:

当您将其作为表单数据发送时,主体结构已更改尝试 dd 您的请求并查看请求的外观。

public function rules()

   dd($this->request->all());

【讨论】:

以上是关于Laravel 请求验证不适用于邮递员请求的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 表单请求验证规则“必需”不适用于空值

Laravel表单请求验证不适用于getValidatorInstance()

使用邮递员的 GET 请求有效,但不适用于 python (HTTPSConnectionPool)

邮递员原始数据有效,但表单数据不适用于节点中的 POST 请求

公共 Laravel API 的身份验证

Ajax Post Laravel 共享主机上的 403 错误