checkOverwrite() public method

Check whether an update or upsert operation may proceed safely
public checkOverwrite ( array $entities, boolean $allowOverwrite = false ) : void
$entities array the entities to be updated or upserted.
$allowOverwrite boolean If `true`, entities may be overwritten. **Defaults to** `false`.
return void
Beispiel #1
0
 /**
  * Update multiple entities
  *
  * No service requests are run when this method is called.
  * Use {@see Google\Cloud\Datastore\Transaction::commit()} to commit changes.
  *
  * Example:
  * ```
  * $entities[0]['firstName'] = 'Bob';
  * $entities[1]['firstName'] = 'John';
  *
  * $transaction->updateBatch($entities);
  * $transaction->commit();
  * ```
  *
  * @param Entity[] $entities The entities to update.
  * @param array $options [optional] {
  *     Configuration Options
  *
  *     @type bool $allowOverwrite Entities must be updated as an entire
  *           resource. Patch operations are not supported. Because entities
  *           can be created manually, or obtained by a lookup or query, it
  *           is possible to accidentally overwrite an existing record with a
  *           new one when manually creating an entity. To provide additional
  *           safety, this flag must be set to `true` in order to update a
  *           record when the entity provided was not obtained through a
  *           lookup or query. **Defaults to** `false`.
  * }
  * @return Transaction
  */
 public function updateBatch(array $entities, array $options = [])
 {
     $options += ['allowOverwrite' => false];
     $this->operation->checkOverwrite($entities, $options['allowOverwrite']);
     $this->operation->mutate('update', $entities, Entity::class);
     return $this;
 }
 /**
  * Update multiple entities
  *
  * Please note that updating a record in Cloud Datastore will replace the
  * existing record. Adding, editing or removing a single property is only
  * possible by first retrieving the entire entity in its existing state.
  *
  * Update by this method is non-transactional. If you need transaction
  * support, use {@see Google\Cloud\Datastore\Transaction::updateBatch()}.
  *
  * Example:
  * ```
  * $entities[0]['firstName'] = 'Bob';
  * $entities[1]['firstName'] = 'John';
  *
  * $datastore->updateBatch($entities);
  * ```
  *
  * @param Entity[] $entities The entities to be updated.
  * @param array $options [optional] {
  *     Configuration Options
  *
  *     @type bool $allowOverwrite Entities must be updated as an entire
  *           resource. Patch operations are not supported. Because entities
  *           can be created manually, or obtained by a lookup or query, it
  *           is possible to accidentally overwrite an existing record with a
  *           new one when manually creating an entity. To provide additional
  *           safety, this flag must be set to `true` in order to update a
  *           record when the entity provided was not obtained through a
  *           lookup or query. **Defaults to** `false`.
  * }
  * @return array [Response Body](https://cloud.google.com/datastore/reference/rest/v1/projects/commit#response-body)
  */
 public function updateBatch(array $entities, array $options = [])
 {
     $options += ['allowOverwrite' => false];
     $this->operation->checkOverwrite($entities, $options['allowOverwrite']);
     $mutations = [];
     foreach ($entities as $entity) {
         $mutations[] = $this->operation->mutation('update', $entity, Entity::class);
     }
     return $this->operation->commit($mutations, $options);
 }