Я интегрирую google datastore api в php. Я пытаюсь обновить объект в хранилище google.Как обновить определенный атрибут объекта в google datatstore?
Я должен предоставить все атрибуты, даже когда я пытаюсь обновить его только одно поле, иначе все данные будут потеряны. Также, если я попытаюсь создать сущность, давайте скажем logs
Я не могу сохранить свои старые объекты при обновлении его новым. Кто-нибудь может помочь?
Привет @Frank Да У меня есть сущность по ключу, используя следующий код.
/*
*Function to lookup an entity.
*/
function lookup_request($entity_kind,$entity_id){
$instance = & get_instance();
$service = set_google_datastore();
$req = get_entity($entity_kind,$entity_id);
return $service->projects->lookup($instance->config->item('google_project_id'),$req,[]);
}
/*
*Function to set datatsore instance.
*/
function set_google_datastore(){
return new Google_Service_Datastore(google_set_client());
}
/*
*Function to set mutation to get entity.
*/
function get_entity($entity_kind,$entity_id){
$path = new Google_Service_Datastore_PathElement();
$path->setKind($entity_kind);
$path->setId($entity_id);
$key = new Google_Service_Datastore_Key();
$key->setPath([$path]);
$req = new Google_Service_Datastore_LookupRequest();
$req->setKeys($key);
return $req;
}
Использование вышеуказанного кода Im способно получить объект. Теперь что мне делать, чтобы обновить его? Я обновляю его, используя setUpdate
. Что мне не хватает. Можете ли вы объяснить?
При сохранении объекта в хранилище данных GAE весь объект сериализуется и (повторно) записывается. Если вы хотите обновить только часть своих свойств, вам нужно сначала прочитать объект, а затем изменить нужные свойства и сохранить объект. –
Вы проверили библиотеку PHP GDS? Это делает много всего этого прямо (IMHO) – Tom
https://github.com/tomwalder/php-gds – Tom