【发布时间】:2017-09-13 15:51:32
【问题描述】:
我采用了如下所示的数据存储实体。
$query = $Datastore->query()
->kind('Test')
->filter('User', '=', $_POST['txtMail'])
->filter('Password', '=', $_POST['txtPwd']);
$result = $Datastore->runQuery($query);
我想在 $result 中获取实体/实体的键/键,但如果我这样做:
$Entity->key();
返回 0($result 中的零个实体)和 1,2,3,... 如果我有一个或多个实体。 我的 Datastore 实体是这样的:
ID/Name | User | Password
Numeric AutoGen. | String | String
我想做的是这样的:
$query = $Datastore->query()
->kind('Test')
->filter('User', '=', $_POST['txtMail'])
->filter('Password', '=', $_POST['txtPwd']);
$result = $Datastore->runQuery($query);
foreach ($result as $entity){
/*how to get entity key from here*/
}
【问题讨论】:
-
->key()方法是正确的,请参阅github.com/GoogleCloudPlatform/google-cloud-php-datastore/blob/…。其他事情正在发生。 -
好的,但是为什么如果我执行“SELECT * FROM X where User = 'Test@test.com' AND Password = 'xxxxxxxx'”这样的查询,我希望键值为 5659118702428160 但如果我打印出 Entity->Key() value is 1?
-
键不是普通值,它们是键类型和键 ID 对的列表。密钥 ID 可能是您提到的整数。我不知道 PHP,所以我不知道你到底在打印什么,或者为什么会这样。检查cloud.google.com/datastore/docs/concepts/…,这些是关键。不是普通整数
-
@DanCornilescu 感谢您的回复,但您指出的链接似乎是使用“外键”操作的方法
-
不是真的 - 那种对象是
->key()返回的...
标签: php google-app-engine google-cloud-datastore