specialtactics / laravel-api-boilerplate

Laravel API Boilerplate | Quickly build quality API products!
MIT License
490 stars 94 forks source link

[BUG] Class name must be a valid object or a string #42

Closed devmansurov closed 4 years ago

devmansurov commented 4 years ago

Version Information PHP Version: 7.4.5 Laravel Version: 7.11 Package Version (l5-api): ^2.0

Describe the bug After installing and creating an example controller and model using command php artisan make:api-resource Book, I get an error when sending a request to API. Headers are setted on request.

Error

{
    "message": "Class name must be a valid object or a string",
    "statusCode": 500,
    "debug": {
        "line": 41,
        "file": "C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\specialtactics\\l5-api\\src\\Http\\Controllers\\RestfulController.php",
        "class": "Error",
        "trace": [
            "#0 [internal function]: Specialtactics\\L5Api\\Http\\Controllers\\RestfulController->getAll()",
            "#1 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php(54): call_user_func_array(Array, Array)",
            "#2 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('getAll', Array)",
            "#3 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\BookController), 'getAll')",
            "#4 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(196): Illuminate\\Routing\\Route->runController()",
            "#5 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(685): Illuminate\\Routing\\Route->run()",
            "#6 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#7 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#8 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#9 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\ThrottleRequests.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#10 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure), 60, '1')",
            "#11 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\specialtactics\\l5-api\\src\\Http\\Middleware\\SnakeCaseInputParameterKeys.php(52): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#12 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Specialtactics\\L5Api\\Http\\Middleware\\SnakeCaseInputParameterKeys->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#13 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\dingo\\api\\src\\Http\\Middleware\\PrepareController.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#14 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Dingo\\Api\\Http\\Middleware\\PrepareController->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#15 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#16 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(687): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
            "#17 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Dingo\\Api\\Http\\Request))",
            "#18 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(628): Illuminate\\Routing\\Router->runRoute(Object(Dingo\\Api\\Http\\Request), Object(Illuminate\\Routing\\Route))",
            "#19 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute(Object(Dingo\\Api\\Http\\Request))",
            "#20 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\dingo\\api\\src\\Routing\\Adapter\\Laravel.php(88): Illuminate\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))",
            "#21 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\dingo\\api\\src\\Routing\\Router.php(518): Dingo\\Api\\Routing\\Adapter\\Laravel->dispatch(Object(Dingo\\Api\\Http\\Request), 'v1')",
            "#22 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\dingo\\api\\src\\Http\\Middleware\\Request.php(126): Dingo\\Api\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))",
            "#23 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(128): Dingo\\Api\\Http\\Middleware\\Request->Dingo\\Api\\Http\\Middleware\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#24 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#25 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#26 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#27 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#28 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#29 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#30 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#31 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#32 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\fruitcake\\laravel-cors\\src\\HandleCors.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#33 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#34 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#35 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#36 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))",
            "#37 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\dingo\\api\\src\\Http\\Middleware\\Request.php(127): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
            "#38 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\dingo\\api\\src\\Http\\Middleware\\Request.php(103): Dingo\\Api\\Http\\Middleware\\Request->sendRequestThroughRouter(Object(Dingo\\Api\\Http\\Request))",
            "#39 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Dingo\\Api\\Http\\Middleware\\Request->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))",
            "#40 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))",
            "#41 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))",
            "#42 C:\\xampp\\htdocs\\laravel-api-boilerplate\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))",
            "#43 C:\\xampp\\htdocs\\laravel-api-boilerplate\\public\\index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))",
            "#44 {main}"
        ]
    }
}
specialtactics commented 4 years ago

Hi, sorry not sure how I missed this.

So it seems like you didn't specify the model name inside of the controller's $model property. You need to do that. You can find examples in the docs (in the wiki)