2013-03-09 1 views
0

Supposons que vous ayez une classe nommée Customer et une autre classe nommée StreetAddress. Un client a un multi-href qui accepte plusieurs StreetAddresses. Supposons maintenant que lorsqu'un client s'inscrit dans le système, il saisit une seule adresse de rue qui sera enregistrée avec l'objet Client. Maintenant, la partie critique est: si nous sauvons le client d'abord et le StreetAddress plus tard, nous pouvons rencontrer un problème si un problème survient lors de l'enregistrement de StreetAddress, le client sera sur le système sans StreetAddress. Donc la solution est de faire une transaction pour sauvegarder des objets.Pimcore - Enregistrement d'objets avec transaction

J'ai testé le code suivant:

$address = Object_CustomerAddress::create(); 
$address->setTest('teestt'); 
$address->setKey('testaddress'); 

$customer = Object_Customer::create(); 
$customer->setAddresses(array($address)); 
$customer->setKey('testcustomer'); 
$customer->save(); 

Ce code permettra d'économiser le client, mais ne sauvera pas l'adresse (mais aussi ne renvoie aucune erreur). Je pense que ce code devrait faire une transaction et enregistrer les deux.

Ai-je raison? Ou y a-t-il un autre moyen de résoudre ce genre de problème avec Pimcore?

Merci!

Répondre

2

Vous n'appelez pas save() sur l'objet CustomerAddress.

$address->save()