路由使用login之后,AdminRequest继承Request报错,如何解决呢

[2020-11-26 02:35:05] local.ERROR: Declaration of App\Http\Controllers\Finance\AuthController::login(App\Http\Request\AdminRequest $request) should be compatible with App\Http\Controllers\BaseController::login(Illuminate\Http\Request $request) {"exception":"[object] (ErrorException(code: 0): Declaration of App\\Http\\Controllers\\Finance\\AuthController::login(App\\Http\\Request\\AdminRequest $request) should be compatible with App\\Http\\Controllers\\BaseController::login(Illuminate\\Http\\Request $request) at D:\\phpstudy_pro\\WWW\\money\\app\\Http\\Controllers\\Finance\\AuthController.php:20)
[stacktrace]
#0 D:\\phpstudy_pro\\WWW\\money\\app\\Http\\Controllers\\Finance\\AuthController.php(20): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'Declaration of ...', 'D:\\\\phpstudy_pro...', 20, Array)
#1 D:\\phpstudy_pro\\WWW\\money\\vendor\\composer\\ClassLoader.php(444): include('D:\\\\phpstudy_pro...')
#2 D:\\phpstudy_pro\\WWW\\money\\vendor\\composer\\ClassLoader.php(322): Composer\\Autoload\\includeFile('D:\\\\phpstudy_pro...')
#3 [internal function]: Composer\\Autoload\\ClassLoader->loadClass('App\\\\Http\\\\Contro...')
#4 [internal function]: spl_autoload_call('App\\\\Http\\\\Contro...')
#5 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(803): ReflectionClass->__construct('App\\\\Http\\\\Contro...')
#6 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(681): Illuminate\\Container\\Container->build('App\\\\Http\\\\Contro...')
#7 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(785): Illuminate\\Container\\Container->resolve('App\\\\Http\\\\Contro...', Array, true)
#8 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(629): Illuminate\\Foundation\\Application->resolve('App\\\\Http\\\\Contro...', Array)
#9 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(770): Illuminate\\Container\\Container->make('App\\\\Http\\\\Contro...', Array)
#10 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(233): Illuminate\\Foundation\\Application->make('App\\\\Http\\\\Contro...')
#11 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(833): Illuminate\\Routing\\Route->getController()
#12 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(794): Illuminate\\Routing\\Route->controllerMiddleware()
#13 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(694): Illuminate\\Routing\\Route->gatherMiddleware()
#14 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(674): Illuminate\\Routing\\Router->gatherRouteMiddleware(Object(Illuminate\\Routing\\Route))
#15 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(658): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#16 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(624): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#17 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(613): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#18 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(170): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#19 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(130): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#20 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#26 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 D:\\phpstudy_pro\\WWW\\money\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#30 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#31 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(145): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#32 D:\\phpstudy_pro\\WWW\\money\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#33 D:\\phpstudy_pro\\WWW\\money\\public\\index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#34 {main}
"} 

AuthController.php

public function login(AdminRequest $request)
    {
        $validatedData = $request->all();
        $res = AdminLogic::login($validatedData);
        return $res ? $this->success($res) : $this->error(AdminLogic::getError());
    }

AdminRequest.php

namespace App\Http\Request;

class AdminRequest extends BaseRequest
{
    /**
     * 验证规则
     * @return string[]
     */
    public function rules()
    {
        return [
            'admin_username' => 'required|max:255',
            'admin_password' => 'required',
        ];
    }

    /**
     * 返回信息
     * @return array|string[]
     */
    public function messages()
    {
        return [
            'admin_username.required' => '用户名必须为空',
            'admin_username.max' => '用户名长度不能超过255字符',
            'admin_password.required' => '密码必须为空',
        ];
    }
}
namespace App\Http\Request;
use App\Common\Lib\Traits\Response;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Http\Request;

class BaseRequest extends Request
{
    use Response;
    protected function failedValidation(Validator $validator) {
        $error = $validator->errors()->all();
        throw new HttpResponseException(response()->json(['msg'=>$error[0],'code'=>'500','data'=>''], 500));
    }
}
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
use Illuminate\Foundation\Http\FormRequest;
class xxx extends FormRequest
3年前 评论
Nr-zhang (楼主) 3年前

BaseRequest 继承的类错了,因该是use Illuminate\Foundation\Http\FormRequest

3年前 评论
Nr-zhang (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!