我正在使用PHP CRUD Api来为简单的AngularJS列表应用程序提供服务。
当我向数据库添加新项目时,我想刷新列表以显示新项目。
我的想法是将数据推送到$ save success回调中的列表数组中。这很有效,但我需要知道这个问题。 PHP API编写的记录。
PHP Api会传回lastInsertId()
,如此代码中所示
function create($table, $data) {
$fields = $this->filter($table, $data);
$sql = "INSERT INTO " . $table . " (" . implode($fields, ", ") . ") VALUES (:" . implode($fields, ", :") . ");";
$bind = array();
foreach($fields as $field)
$bind[":$field"] = $data[$field];
$result = $this->run($sql, $bind);
return $this->db->lastInsertId();
}
$db = new db();
$rowId = $db->create($table,$data);
$requestContentType = $_SERVER['HTTP_ACCEPT'];
$this ->setHttpHeaders($requestContentType, $statusCode);
$response = $this->encodeJson($rowId);
echo $response;
问题是,我不知道如何使用下面的代码访问成功回调中的lastInsertId()
data.$save()
.then(function (res) {
// push the new data in to the list array here - how do I access the lastInsertId() that is returned from the Api?
})
.catch(function (req) {
// error
})
.finally(function () {
});
这是在插入新记录后刷新应用程序的最佳方式,还是我的方法错误?
答案 0 :(得分:0)
以防万一有人在将来偶然发现这个问题,问题不在于$save
函数,这是php CRUD Api的一个问题 - 它正在返回最后插入的ID,好吧,但不是采用JSON编码格式。
一旦我更改php Api以返回编码的ID JSON(例如{"id": "185"}
),我就可以访问res.id