cloudcreativity / laravel-json-api

JSON API (jsonapi.org) package for Laravel applications.
http://laravel-json-api.readthedocs.io/en/latest/
Apache License 2.0
778 stars 109 forks source link

Soft-deleting: I got this error of "Unknown column 'products.' in 'where clause'" when the soft-deleting codes were added. #608

Closed MRGAO-CR7 closed 3 years ago

MRGAO-CR7 commented 3 years ago

Error log:

[2021-05-21 00:59:03] development.ERROR: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'products.' in 'where clause' (SQL: select * from `products` where `products`.`` is null) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'products.' in 'where clause' (SQL: select * from `products` where `products`.`` is null) at /srv/application/vendor/laravel/framework/src/Illuminate/Database/Connection.php:678)
[stacktrace]
#0 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Connection.php(638): Illuminate\\Database\\Connection->runQueryCallback('select * from `...', Array, Object(Closure))
#1 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Connection.php(346): Illuminate\\Database\\Connection->run('select * from `...', Array, Object(Closure))
#2 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2315): Illuminate\\Database\\Connection->select('select * from `...', Array, true)
#3 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2303): Illuminate\\Database\\Query\\Builder->runSelect()
#4 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2867): Illuminate\\Database\\Query\\Builder->Illuminate\\Database\\Query\\{closure}()
#5 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2304): Illuminate\\Database\\Query\\Builder->onceWithColumns(Array, Object(Closure))
#6 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(598): Illuminate\\Database\\Query\\Builder->get(Array)
#7 /srv/application/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(582): Illuminate\\Database\\Eloquent\\Builder->getModels(Array)
#8 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Eloquent/AbstractAdapter.php(481): Illuminate\\Database\\Eloquent\\Builder->get()
#9 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Eloquent/AbstractAdapter.php(660): CloudCreativity\\LaravelJsonApi\\Eloquent\\AbstractAdapter->searchAll(Object(Illuminate\\Database\\Eloquent\\Builder))
#10 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Eloquent/AbstractAdapter.php(637): CloudCreativity\\LaravelJsonApi\\Eloquent\\AbstractAdapter->queryAll(Object(Illuminate\\Database\\Eloquent\\Builder), Object(Neomerx\\JsonApi\\Encoder\\Parameters\\EncodingParameters))
#11 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Eloquent/AbstractAdapter.php(125): CloudCreativity\\LaravelJsonApi\\Eloquent\\AbstractAdapter->queryAllOrOne(Object(Illuminate\\Database\\Eloquent\\Builder), Object(Neomerx\\JsonApi\\Encoder\\Parameters\\EncodingParameters))
#12 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Store/Store.php(73): CloudCreativity\\LaravelJsonApi\\Eloquent\\AbstractAdapter->query(Object(Neomerx\\JsonApi\\Encoder\\Parameters\\EncodingParameters))
#13 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Http/Controllers/JsonApiController.php(385): CloudCreativity\\LaravelJsonApi\\Store\\Store->queryRecords('products', Object(CloudCreativity\\LaravelJsonApi\\Encoder\\Parameters\\EncodingParameters))
#14 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Http/Controllers/JsonApiController.php(93): CloudCreativity\\LaravelJsonApi\\Http\\Controllers\\JsonApiController->doSearch(Object(CloudCreativity\\LaravelJsonApi\\Store\\Store), Object(CloudCreativity\\LaravelJsonApi\\Http\\Requests\\FetchResources))
#15 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): CloudCreativity\\LaravelJsonApi\\Http\\Controllers\\JsonApiController->index(Object(CloudCreativity\\LaravelJsonApi\\Store\\Store), Object(CloudCreativity\\LaravelJsonApi\\Http\\Requests\\FetchResources), 'products')
#16 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('index', Array)
#17 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Route.php(254): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(CloudCreativity\\LaravelJsonApi\\Http\\Controllers\\JsonApiController), 'index')
#18 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Route.php(197): Illuminate\\Routing\\Route->runController()
#19 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Routing\\Route->run()
#20 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#21 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Http/Middleware/NegotiateContent.php(102): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#22 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): CloudCreativity\\LaravelJsonApi\\Http\\Middleware\\NegotiateContent->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#23 /srv/application/vendor/cloudcreativity/laravel-json-api/src/Http/Middleware/BootJsonApi.php(82): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#24 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): CloudCreativity\\LaravelJsonApi\\Http\\Middleware\\BootJsonApi->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'v1')
#25 /srv/application/app/Http/Middleware/AcceptsJsonApi.php(23): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#26 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\AcceptsJsonApi->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#29 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(103): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequest(Object(Illuminate\\Http\\Request), Object(Closure), Array)
#31 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(55): Illuminate\\Routing\\Middleware\\ThrottleRequests->handleRequestUsingNamedLimiter(Object(Illuminate\\Http\\Request), Object(Closure), 'api', Object(Closure))
#32 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'api')
#33 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#35 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#36 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#37 /srv/application/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#38 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#39 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#40 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#42 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#45 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#47 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#48 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#49 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 /srv/application/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#52 /srv/application/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#53 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#54 /srv/application/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#55 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#56 /srv/application/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#57 /srv/application/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#58 /srv/application/server.php(21): require_once('/srv/applicatio...')
#59 {main}
MRGAO-CR7 commented 3 years ago

@here It will be really helpful if anyone can fix it for me, thx

MRGAO-CR7 commented 3 years ago

@lindyhopchris any ideas?

MRGAO-CR7 commented 3 years ago

I've fixed the issue, thx anyway.

    public function getDeletedAtColumn()
    {
        return 'deleted_at'; //return $this->deleted_at;
    }
lindyhopchris commented 3 years ago

Glad you got it sorted, but not sure why you're implementing the getDeletedAtColumn() method? It should be added to your model via Eloquent's SoftDelete trait.

MRGAO-CR7 commented 3 years ago

Yes, you are right, I did it because I forgot to use the SoftDelete trait, thx.