【发布时间】:2020-06-12 12:06:30
【问题描述】:
我有一个控制器,我使用不同的请求来验证每种方法的数据。我尝试使用具有完整命名空间的请求并通过导入,但在这两种情况下都不起作用。
例如
<?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
}
}
在这个控制器中,laravel 找不到任何请求文件并返回错误消息:
ReflectionException: Class App\Http\Requests[Name of Request] 确实 文件中不存在 /home/c/website/vendor/laravel/framework/src/Illuminate/Routing/RouteSignatureParameters.php 第 25 行
我的请求文件代码示例
<?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"
];
}
}
我试过命令:
composer dump autoload
php artisan config:cache
php artisan config:clear
php artisan cache:clear
php artisan route:clear
Laravel 框架:6.17.0
PHP:7.4
【问题讨论】:
标签: php laravel laravel-6 laravel-6.2