SLIM 应用程序错误。代码8:数组到字符串的转换
SLIM Application error. Code 8: Array to string conversion
我目前正在开发一个移动应用程序(前端),该应用程序使用 PDO 通过 Php Slim 后端从 MySQL 数据库获取一些数据。这个(后端)是由一个队友开发的,在他的电脑上工作得很好。
有一个 GET 路由,应该 return 一些 JSON 数据:
$app->get('/users', function () {
require_once 'controllers/User.php';
$user = new User();
$user->setJsonMode(true);
$user->setJoin('default');
$user->setSelect('user_id, user.role_id, role, name,
userName, email, picture, user.last_update');
echo $user->select();
});
'User'控制器继承自'CtrlDB'控制器。
如果我尝试访问“api/users”,我得到:
类型:错误异常
代码:8
消息:数组到字符串的转换
文件:/home/shy-n/projects/tienda/api/controllers/CtrlDB.php
行:32
第32行位于CtrlDB构造函数处:
public function __construct($table,$fields,$idProperty,$relations) {
$dsn = DB_ENGINE.':host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8';
try {
$this->db = new PDO($dsn, DB_USERNAME, DB_PASSWORD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $e) {
$response = $this->response("error","Connection failed: " . $e->getMessage(),null);
echo $response;
exit;
}
$this->table = $table;
$this->idProperty = $idProperty;
$this->fields = $fields;
$this->relations = $relations;
$this->start = 0;
$this->limit = 25;
$this->select = "`".implode("`, `",$fields)."`";
}
在“echo $response”中出现错误,我不知道发生了什么。
他使用 php 5.5.12
的 WAMP 服务器
我正在使用 Arch Linux 64 位和 LAMP 以及 php 5.6.5。我已经启用了两个扩展
mysqli.so 和 pdo_mysql.so 在我的 php.ini 文件中。
我已经导入了与 phpmyAdmin 一起使用的数据库,包含与我在后端的朋友相同的寄存器。
尽管如此,他可以获取访问 /users 路径的 JSON 数据,但我不能。
在此先感谢您的帮助。
而不是
echo $response;
尝试
echo json_encode($response);
你不应该回显数组
我目前正在开发一个移动应用程序(前端),该应用程序使用 PDO 通过 Php Slim 后端从 MySQL 数据库获取一些数据。这个(后端)是由一个队友开发的,在他的电脑上工作得很好。
有一个 GET 路由,应该 return 一些 JSON 数据:
$app->get('/users', function () {
require_once 'controllers/User.php';
$user = new User();
$user->setJsonMode(true);
$user->setJoin('default');
$user->setSelect('user_id, user.role_id, role, name,
userName, email, picture, user.last_update');
echo $user->select();
});
'User'控制器继承自'CtrlDB'控制器。
如果我尝试访问“api/users”,我得到:
类型:错误异常 代码:8 消息:数组到字符串的转换 文件:/home/shy-n/projects/tienda/api/controllers/CtrlDB.php 行:32
第32行位于CtrlDB构造函数处:
public function __construct($table,$fields,$idProperty,$relations) {
$dsn = DB_ENGINE.':host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8';
try {
$this->db = new PDO($dsn, DB_USERNAME, DB_PASSWORD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $e) {
$response = $this->response("error","Connection failed: " . $e->getMessage(),null);
echo $response;
exit;
}
$this->table = $table;
$this->idProperty = $idProperty;
$this->fields = $fields;
$this->relations = $relations;
$this->start = 0;
$this->limit = 25;
$this->select = "`".implode("`, `",$fields)."`";
}
在“echo $response”中出现错误,我不知道发生了什么。
他使用 php 5.5.12
的 WAMP 服务器我正在使用 Arch Linux 64 位和 LAMP 以及 php 5.6.5。我已经启用了两个扩展 mysqli.so 和 pdo_mysql.so 在我的 php.ini 文件中。
我已经导入了与 phpmyAdmin 一起使用的数据库,包含与我在后端的朋友相同的寄存器。
尽管如此,他可以获取访问 /users 路径的 JSON 数据,但我不能。
在此先感谢您的帮助。
而不是
echo $response;
尝试
echo json_encode($response);
你不应该回显数组