I refer to the document Form Request Validation Write a validation request
php artisan make:request AccountLoginRequest
I don't have any changes,this is new file.
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class AccountLoginRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
then i use "Dependency Injection" to a login controller, this is my controller code
<?php
namespace App\Http\Api\V1\Controllers\Auth;
use App\Http\Api\V1\Controllers\BaseController;
use App\Http\Requests\AccountLoginRequest;
use App\Repositories\AccountRepository;
class AuthenticateController extends BaseController
{
protected $accountRepository;
public function __construct(AccountRepository $accountRepository)
{
$this->accountRepository = $accountRepository;
}
public function login(AccountLoginRequest $request)
{
var_dump($request);
}
}
Access route, appeared the following error锛孖 saw the dingo inside the error stack,
i don't know the dingo and laravel $request or other conflicts.
Thanks.
{
"message": "500 Internal Server Error",
"status_code": 500,
"debug": {
"line": 135,
"file": "/home/vagrant/develop/php/haolin/vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php",
"class": "Illuminate\\Http\\Exception\\HttpResponseException",
"trace": [
"#0 /home/vagrant/develop/php/haolin/vendor/laravel/framework/src/Illuminate/Validation/ValidatesWhenResolvedTrait.php(23): Illuminate\\Foundation\\Http\\FormRequest->failedAuthorization()",
"#1 /home/vagrant/develop/php/haolin/vendor/laravel/framework/src/Illuminate/Foundation/Providers/FoundationServiceProvider.php(41): Illuminate\\Foundation\\Http\\FormRequest->validate()",
"#2 /home/vagrant/develop/php/haolin/vendor/illuminate/container/Container.php(1031): Illuminate\\Foundation\\Providers\\FoundationServiceProvider->Illuminate\\Foundation\\Providers\\{closure}(Object(App\\Http\\Requests\\AccountLoginRequest), Object(Illuminate\\Foundation\\Application))",
"#3 /home/vagrant/develop/php/haolin/vendor/illuminate/container/Container.php(994): Illuminate\\Container\\Container->fireCallbackArray(Object(App\\Http\\Requests\\AccountLoginRequest), Array)",
"#4 /home/vagrant/develop/php/haolin/vendor/illuminate/container/Container.php(648): Illuminate\\Container\\Container->fireResolvingCallbacks('App\\\\Http\\\\Reques...', Object(App\\Http\\Requests\\AccountLoginRequest))",
"#5 /home/vagrant/develop/php/haolin/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(697): Illuminate\\Container\\Container->make('App\\\\Http\\\\Reques...', Array)",
"#6 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/RouteDependencyResolverTrait.php(85): Illuminate\\Foundation\\Application->make('App\\\\Http\\\\Reques...')",
"#7 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/RouteDependencyResolverTrait.php(57): Illuminate\\Routing\\ControllerDispatcher->transformDependency(Object(ReflectionParameter), Array, Array)",
"#8 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/RouteDependencyResolverTrait.php(41): Illuminate\\Routing\\ControllerDispatcher->resolveMethodDependencies(Array, Object(ReflectionMethod))",
"#9 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/ControllerDispatcher.php(143): Illuminate\\Routing\\ControllerDispatcher->resolveClassMethodDependencies(Array, Object(App\\Http\\Api\\V1\\Controllers\\Auth\\AuthenticateController), 'login')",
"#10 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/ControllerDispatcher.php(94): Illuminate\\Routing\\ControllerDispatcher->call(Object(App\\Http\\Api\\V1\\Controllers\\Auth\\AuthenticateController), Object(Illuminate\\Routing\\Route), 'login')",
"#11 [internal function]: Illuminate\\Routing\\ControllerDispatcher->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#12 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
"#13 [internal function]: Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#14 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
"#15 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/ControllerDispatcher.php(96): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
"#16 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/ControllerDispatcher.php(54): Illuminate\\Routing\\ControllerDispatcher->callWithinStack(Object(App\\Http\\Api\\V1\\Controllers\\Auth\\AuthenticateController), Object(Illuminate\\Routing\\Route), Object(Dingo\\Api\\Http\\Request), 'login')",
"#17 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Route.php(174): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Dingo\\Api\\Http\\Request), 'App\\\\Http\\\\Api\\\\V1...', 'login')",
"#18 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Route.php(140): Illuminate\\Routing\\Route->runController(Object(Dingo\\Api\\Http\\Request))",
"#19 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Router.php(724): Illuminate\\Routing\\Route->run(Object(Dingo\\Api\\Http\\Request))",
"#20 [internal function]: Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#21 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
"#22 /home/vagrant/develop/php/haolin/vendor/dingo/api/src/Http/Middleware/PrepareController.php(45): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#23 [internal function]: Dingo\\Api\\Http\\Middleware\\PrepareController->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
"#24 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(136): call_user_func_array(Array, Array)",
"#25 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#26 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
"#27 [internal function]: Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#28 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
"#29 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Router.php(726): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
"#30 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Router.php(699): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Dingo\\Api\\Http\\Request))",
"#31 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Router.php(675): Illuminate\\Routing\\Router->dispatchToRoute(Object(Dingo\\Api\\Http\\Request))",
"#32 /home/vagrant/develop/php/haolin/vendor/dingo/api/src/Routing/Adapter/Laravel.php(82): Illuminate\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))",
"#33 /home/vagrant/develop/php/haolin/vendor/dingo/api/src/Routing/Router.php(513): Dingo\\Api\\Routing\\Adapter\\Laravel->dispatch(Object(Dingo\\Api\\Http\\Request), 'v1')",
"#34 /home/vagrant/develop/php/haolin/vendor/dingo/api/src/Http/Middleware/Request.php(123): Dingo\\Api\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))",
"#35 [internal function]: Dingo\\Api\\Http\\Middleware\\Request->Dingo\\Api\\Http\\Middleware\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#36 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(150): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
"#37 /home/vagrant/develop/php/haolin/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#38 [internal function]: Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
"#39 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(136): call_user_func_array(Array, Array)",
"#40 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
"#41 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Dingo\\Api\\Http\\Request))",
"#42 /home/vagrant/develop/php/haolin/vendor/dingo/api/src/Http/Middleware/Request.php(124): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
"#43 /home/vagrant/develop/php/haolin/vendor/dingo/api/src/Http/Middleware/Request.php(100): Dingo\\Api\\Http\\Middleware\\Request->sendRequestThroughRouter(Object(Dingo\\Api\\Http\\Request))",
"#44 [internal function]: Dingo\\Api\\Http\\Middleware\\Request->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
"#45 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(136): call_user_func_array(Array, Array)",
"#46 [internal function]: Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))",
"#47 /home/vagrant/develop/php/haolin/vendor/illuminate/routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))",
"#48 [internal function]: Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))",
"#49 /home/vagrant/develop/php/haolin/vendor/illuminate/pipeline/Pipeline.php(102): call_user_func(Object(Closure), Object(Illuminate\\Http\\Request))",
"#50 /home/vagrant/develop/php/haolin/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
"#51 /home/vagrant/develop/php/haolin/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))",
"#52 /home/vagrant/develop/php/haolin/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))",
"#53 {main}"
]
}
}
I'm sorry, I found the solution to the problem.
Request should inherit from Dingo\Api\Http\FormRequest class.
That is ok
<?php
namespace App\Http\Requests;
use Dingo\Api\Http\FormRequest;
class AccountLoginRequest 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 [
//
];
}
}
Most helpful comment
I'm sorry, I found the solution to the problem.
Request should inherit from
Dingo\Api\Http\FormRequestclass.That is ok