0

我的項目有Article類。然後,有一種Block種。每個Block都有一個作爲父實體的文章;因此,每篇文章都由幾個Block實體組成。每個Block有一個訂單財產所以最終用戶可以訂購它們。有沒有辦法僅通過Google Cloud Datastore更新單個屬性值?

在前端,用戶可以添加新的Block或更新現有的。顯然,通過向上移動Block,它改變了它自己的順序,但是致命的是,它也改變了(+1)後續的每個實體Block

到目前爲止,對於用戶保存的每一次更新,我檢索所有Block實體的順序等於或大於新保存的實體,並更新它們中的每一個。

是否有辦法使用PHP庫簡單地更新一個屬性(order)?

回答

0

不,你不能只更新一個實體的屬性,你必須更新整個實體。從Updating an entity

要更新現有的實體,修改先前檢索到的實體 的屬性,並存儲它用所述密鑰:

$transaction = $datastore->transaction(); 
$key = $datastore->key('Task', 'sampleTask'); 
$task = $transaction->lookup($key); 
$task['priority'] = 5; 
$transaction->upsert($task); 
$transaction->commit(); 

所提供的數據覆蓋現有的實體。必須將整個對象 發送到雲數據存儲。 [...]

**Note:** To delete a property, remove the property from the entity, then save the entity. 
相關問題