Php 拉威尔没有';在单个控制器中不支持多个表单请求?

Php 拉威尔没有';在单个控制器中不支持多个表单请求?,php,laravel,laravel-6,laravel-6.2,Php,Laravel,Laravel 6,Laravel 6.2,我有一个控制器,在这里我使用不同的请求来验证每个方法上的数据。我尝试使用带有完整名称空间的请求,也尝试了导入请求,但在这两种情况下都不起作用 例如 <?php namespace App\Http\Controllers; use App\User; use Illuminate\Http\Request; use App\Http\Requests\UserRequest; use App\Http\Requests\RegisterRequest; use App\Http\Req

我有一个控制器,在这里我使用不同的请求来验证每个方法上的数据。我尝试使用带有完整名称空间的请求,也尝试了导入请求,但在这两种情况下都不起作用

例如

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use App\Http\Requests\UserRequest;
use App\Http\Requests\RegisterRequest;
use App\Http\Requests\PositionRequest;
use App\Http\Requests\UserOrderRequest;

class UserController extends Controller
{
    public function register(\App\Http\Requests\RegisterRequest $request)
    {
        // do something
    }

    public function positions(\App\Http\Requests\PositionRequest $request)
    {
        // do something
    }

    public function user(\App\Http\Requests\UserRequest $request)
    {
        // do something
    }

    public function orders(\App\Http\Requests\UserOrderRequest $request)
    {
        // do something
    }
}
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class RegisterRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            "name" => "required|min:3|max:100",
            "email" => "required|email|unique:users",
            "phone" => "required|numeric|unique:users",
            "positions" => "required|array|min:1|max:10",
            "positions.*.name" => "required|string|min:2|max:50|distinct",
            "password" => "required|min:8|string|max:255"
        ];
    }
}
Laravel框架:6.17.0

PHP:7.4

未测试,但请尝试

public function register(RegisterRequest $request)
{
    //
}
您不应该需要完整的名称空间,因为您已经在顶部导入了它们


还要确保文件夹App\Http\Requests中有文件UserRequest.php,并且它的名称空间匹配

请求类看起来像什么?文件中包含的内容:

App\Http\Requests\UserRequest
App\Http\Requests\RegisterRequest
App\Http\Requests\PositionRequest
App\Http\Requests\UserOrderRequest
确保这些文件的路径和名称、文件中的名称空间以及在此文件中使用的use语句完全匹配。大小写可能取决于您的服务器设置,因此请确保大小写匹配

因为您有用于它们的use语句,所以在注入它们时不需要使用完整的名称空间

   public function orders(UserOrderRequest $request)
    {
        // do something
    }

   public function orders(UserOrderRequest $request)
    {
        // do something
    }