When accessing a one-to-one related record that doesn't exist, Doctrine automatically creates the object. So for example the following code is possible:
$user->save();
<code type="php">
</code>
$user = new User();
$user->name = 'some user';
+++ Retrieving related records
$user->Email->address = 'some@one.info';
// saves the user and the associated email
You can retrieve related records by the very same {{Doctrine_Record}} methods you've already propably used for accessing record properties. When accessing related record you just simply use the class names.
$user->save();
</code>
<code type="php">
print $user->Email['address'];
When accessing one-to-many related records, Doctrine creates a Doctrine_Collection for the related component. Lets say we have users and phonenumbers and their relations is one-to-many. You can add phonenumbers easily as shown above:
print $user->Phonenumber[0]->phonenumber;
<code type="php">
$user = new User();
print $user->Group[0]->name;
$user->name = 'some user';
</code>
$user->Phonenumber[]->phonenumber = '123 123';
$user->Phonenumber[]->phonenumber = '456 123';
+++ Updating related records
$user->Phonenumber[]->phonenumber = '123 777';
You can update the related records by calling save for each related object / collection individually or by calling save on the object that owns the other objects. You can also call {{Doctrine_Connection::flush}} which saves all pending objects.
You can retrieve related records by the very same {{Doctrine_Record}} methods you've already propably used for accessing record properties. When accessing related record you just simply use the class names.
$user->save();
<code type="php">
// saves the email and phonenumber
print $user->Email['address'];
</code>
print $user->Phonenumber[0]->phonenumber;
+++ Deleting related records
print $user->Group[0]->name;
</code>
You can delete related records individually be calling {{delete()}} on each record. If you want to delete a whole record graph just call delete on the owner record.
<code type="php">
+++ Updating related records
$user->Email->delete();
You can update the related records by calling save for each related object / collection individually or by calling save on the object that owns the other objects. You can also call {{Doctrine_Connection::flush}} which saves all pending objects.
You can delete related records individually be calling {{delete()}} on each record. If you want to delete a whole record graph just call delete on the owner record.