Project.list: any additional parameter breaks the code
Описание
При попытке передать дополнительно любой параметр в GET запрос метода Project.list
возникает ошибка в коде на стороне сервера.
{
"success": false,
"message": "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'param' in 'where clause' (SQL: select * from `projects` where `projects`.`deleted_at` is null and `param` = 1)",
"debug": {
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php",
"line": 671,
"code": 42,
"class": "Illuminate\\Database\\QueryException",
"trace": [
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php",
"line": 631,
"function": "runQueryCallback",
"class": "Illuminate\\Database\\Connection",
"type": "->",
"args": [
"select * from `projects` where `projects`.`deleted_at` is null and `param` = ?",
[
"1"
],
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Connection.php",
"line": 339,
"function": "run",
"class": "Illuminate\\Database\\Connection",
"type": "->",
"args": [
"select * from `projects` where `projects`.`deleted_at` is null and `param` = ?",
[
"1"
],
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php",
"line": 2202,
"function": "select",
"class": "Illuminate\\Database\\Connection",
"type": "->",
"args": [
"select * from `projects` where `projects`.`deleted_at` is null and `param` = ?",
[
"1"
],
true
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php",
"line": 2190,
"function": "runSelect",
"class": "Illuminate\\Database\\Query\\Builder",
"type": "->",
"args": []
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php",
"line": 2685,
"function": "Illuminate\\Database\\Query\\{closure}",
"class": "Illuminate\\Database\\Query\\Builder",
"type": "->",
"args": []
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Query\/Builder.php",
"line": 2191,
"function": "onceWithColumns",
"class": "Illuminate\\Database\\Query\\Builder",
"type": "->",
"args": [
[
"*"
],
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Eloquent\/Builder.php",
"line": 539,
"function": "get",
"class": "Illuminate\\Database\\Query\\Builder",
"type": "->",
"args": [
[
"*"
]
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Database\/Eloquent\/Builder.php",
"line": 523,
"function": "getModels",
"class": "Illuminate\\Database\\Eloquent\\Builder",
"type": "->",
"args": [
[
"*"
]
]
},
{
"file": "\/app\/backend\/app\/Http\/Controllers\/Api\/v1\/ItemController.php",
"line": 73,
"function": "get",
"class": "Illuminate\\Database\\Eloquent\\Builder",
"type": "->",
"args": []
},
{
"file": "\/app\/backend\/app\/Http\/Controllers\/Api\/v1\/ProjectController.php",
"line": 164,
"function": "index",
"class": "App\\Http\\Controllers\\Api\\v1\\ItemController",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"function": "index",
"class": "App\\Http\\Controllers\\Api\\v1\\ProjectController",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Controller.php",
"line": 54,
"function": "call_user_func_array",
"args": [
[
{},
"index"
],
[
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/ControllerDispatcher.php",
"line": 45,
"function": "callAction",
"class": "Illuminate\\Routing\\Controller",
"type": "->",
"args": [
"index",
[
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php",
"line": 239,
"function": "dispatch",
"class": "Illuminate\\Routing\\ControllerDispatcher",
"type": "->",
"args": [
{
"uri": "v1\/projects\/list",
"methods": [
"GET",
"HEAD",
"POST",
"PUT",
"PATCH",
"DELETE",
"OPTIONS"
],
"action": {
"middleware": [
"api",
"auth:api",
"throttle:120,1"
],
"uses": "App\\Http\\Controllers\\Api\\v1\\ProjectController@index",
"controller": "App\\Http\\Controllers\\Api\\v1\\ProjectController@index",
"namespace": "App\\Http\\Controllers",
"where": [],
"as": "generated::orHcAIdngxsDd6uG",
"prefix": "v1"
},
"isFallback": false,
"controller": {},
"defaults": [],
"wheres": [],
"parameters": [],
"parameterNames": [],
"computedMiddleware": [
"api",
"auth:api",
"throttle:120,1",
"role"
],
"compiled": {}
},
{},
"index"
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Route.php",
"line": 196,
"function": "runController",
"class": "Illuminate\\Routing\\Route",
"type": "->",
"args": []
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php",
"line": 685,
"function": "run",
"class": "Illuminate\\Routing\\Route",
"type": "->",
"args": []
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 128,
"function": "Illuminate\\Routing\\{closure}",
"class": "Illuminate\\Routing\\Router",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/app\/Http\/Middleware\/RoleCheck.php",
"line": 33,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "App\\Http\\Middleware\\RoleCheck",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Middleware\/SubstituteBindings.php",
"line": 41,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\SubstituteBindings",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Middleware\/ThrottleRequests.php",
"line": 59,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Routing\\Middleware\\ThrottleRequests",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{},
120,
"1"
]
},
{
"file": "\/app\/backend\/app\/Http\/Middleware\/Authenticate.php",
"line": 48,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "App\\Http\\Middleware\\Authenticate",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{},
"api"
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 103,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php",
"line": 687,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php",
"line": 662,
"function": "runRouteWithinStack",
"class": "Illuminate\\Routing\\Router",
"type": "->",
"args": [
{
"uri": "v1\/projects\/list",
"methods": [
"GET",
"HEAD",
"POST",
"PUT",
"PATCH",
"DELETE",
"OPTIONS"
],
"action": {
"middleware": [
"api",
"auth:api",
"throttle:120,1"
],
"uses": "App\\Http\\Controllers\\Api\\v1\\ProjectController@index",
"controller": "App\\Http\\Controllers\\Api\\v1\\ProjectController@index",
"namespace": "App\\Http\\Controllers",
"where": [],
"as": "generated::orHcAIdngxsDd6uG",
"prefix": "v1"
},
"isFallback": false,
"controller": {},
"defaults": [],
"wheres": [],
"parameters": [],
"parameterNames": [],
"computedMiddleware": [
"api",
"auth:api",
"throttle:120,1",
"role"
],
"compiled": {}
},
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php",
"line": 628,
"function": "runRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{
"uri": "v1\/projects\/list",
"methods": [
"GET",
"HEAD",
"POST",
"PUT",
"PATCH",
"DELETE",
"OPTIONS"
],
"action": {
"middleware": [
"api",
"auth:api",
"throttle:120,1"
],
"uses": "App\\Http\\Controllers\\Api\\v1\\ProjectController@index",
"controller": "App\\Http\\Controllers\\Api\\v1\\ProjectController@index",
"namespace": "App\\Http\\Controllers",
"where": [],
"as": "generated::orHcAIdngxsDd6uG",
"prefix": "v1"
},
"isFallback": false,
"controller": {},
"defaults": [],
"wheres": [],
"parameters": [],
"parameterNames": [],
"computedMiddleware": [
"api",
"auth:api",
"throttle:120,1",
"role"
],
"compiled": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/Router.php",
"line": 617,
"function": "dispatchToRoute",
"class": "Illuminate\\Routing\\Router",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php",
"line": 165,
"function": "dispatch",
"class": "Illuminate\\Routing\\Router",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 128,
"function": "Illuminate\\Foundation\\Http\\{closure}",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/app\/Http\/Middleware\/SentryContext.php",
"line": 22,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "App\\Http\\Middleware\\SentryContext",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/app\/Http\/Middleware\/LockMiddleware.php",
"line": 39,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "App\\Http\\Middleware\\LockMiddleware",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/fruitcake\/laravel-cors\/src\/HandleCors.php",
"line": 37,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Fruitcake\\Cors\\HandleCors",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/TransformsRequest.php",
"line": 21,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/ValidatePostSize.php",
"line": 27,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Middleware\/CheckForMaintenanceMode.php",
"line": 63,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 167,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
},
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Pipeline\/Pipeline.php",
"line": 103,
"function": "Illuminate\\Pipeline\\{closure}",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php",
"line": 140,
"function": "then",
"class": "Illuminate\\Pipeline\\Pipeline",
"type": "->",
"args": [
{}
]
},
{
"file": "\/app\/backend\/vendor\/laravel\/framework\/src\/Illuminate\/Foundation\/Http\/Kernel.php",
"line": 109,
"function": "sendRequestThroughRouter",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
},
{
"file": "\/app\/backend\/public\/index.php",
"line": 53,
"function": "handle",
"class": "Illuminate\\Foundation\\Http\\Kernel",
"type": "->",
"args": [
{
"attributes": {},
"request": {},
"query": {},
"server": {},
"files": {},
"cookies": {},
"headers": {}
}
]
}
]
},
"error_type": "query"
}
Проблема
Параметры GET запроса напрямую преобразуются в фильтры SQL запроса.
Edited by Constantine Belkin