1

Я работаю над datastore Google. Мне нужно создать объект типа Log, имеющий в качестве родителя объект user. Я использую библиотеку Google-api-php-client для интеграции api в php. Я преуспеваю в создании entites. Для вставки объекта я использую следующие функции.Как создать предка сущности (datastore google) с помощью php?

/* 
*Function to insert the entity into the google datastore. 
*/ 
function google_set_insert($data) { 

    $field_set = $data['field_set']; 
    $entity_kind = $data['entity_kind']; 
    $entity_name = $data['entity_name']; 

    $entity = google_create_entity($field_set, $entity_kind, $entity_name); 
    $mutation = new Google_Service_Datastore_Mutation(); 
    $mutation->setInsert($entity); 
    $req = new Google_Service_Datastore_CommitRequest(); 
    $req->setMode('NON_TRANSACTIONAL'); 
    $req->setMutations($mutation); 
    return $req; 
} 

Но я не могу создать предка сущности. Не могли бы вы рассказать мне, что мне не хватает?

ответ

0

Мы рекомендуем использовать клиентскую библиотеку Google Cloud PHP (если вы не используете стандарт GAE).

Вам необходимо добавить предка при первом создании объекта, так как он не может быть изменен после первоначальной записи.

use Google\Cloud\Datastore\DatastoreClient; 

$datastore = new DatastoreClient(); 

$key = $datastore->key('Person', 'Bob'); 
$key->ancestor('Parents', 'Joe'); 
$entity = $datastore->entity($key, [ 
    'firstName' => 'Bob', 
    'lastName' => 'Testguy' 
]); 

echo $entity['firstName']; // 'Bob' 
$entity['location'] = 'Detroit, MI'; 

См. Больше в документации по keys.

+0

В стандарте GAE вы можете использовать мою библиотеку PHP-GDS, которая также поддерживает предков. https://github.com/tomwalder/php-gds – Tom