-
Notifications
You must be signed in to change notification settings - Fork 96
Open
Description
Assume two models, \Model\Record and \Model\Group, with a \Model\Record belongs_to \Model\Group, \Model\Group has_many \Model\Record.
When doing something like the following:
<?php
// Get the record
$record = \Model\Record::find(<some arbitrary ID>);
// Change the assigned group
$record->group = \Model\Group::find(<some arbitrary ID>);
/*
* Assign some other properties and related data here, too
*/
// Save at the end to save on DB-queries
$record->save()then $record->group will be changed to the new ORM-object, but the property of \Model\Record keeping the reference to its assigned group is not updated.
An exemplary result of \Debug::dump($record->to_array()); before and after assigning the group as well as after calling save() is listed below:
Before changing the group
surname (String): "Tempel" (6 characters)
prename (String): "Philipp" (7 characters)
archived (Boolean): false
created_at (Integer): 1374585392
updated_at (Integer): 1374587495
archived_at : null
record_id (String): "1" (1 characters)
rel_group_id (String): "1" (1 characters)
meta (Array, 82 elements) ↵
group (Array, 7 elements) ↵
group_id (String): "1" (1 characters)
name (String): "Student" (7 characters)
slug (String): "student" (7 characters)
protected (Boolean): true
created_at (Integer): 1374478794
updated_at (Integer): 1374478794
After changing the group
surname (String): "Tempel" (6 characters)
prename (String): "Philipp" (7 characters)
archived (Boolean): false
created_at (Integer): 1374585392
updated_at (Integer): 1374587495
archived_at : null
record_id (String): "1" (1 characters)
rel_group_id (String): "1" (1 characters)
meta (Array, 82 elements) ↵
group (Array, 6 elements) ↵
group_id (String): "2" (1 characters)
name (String): "Mitarbeiter" (11 characters)
slug (String): "mitarbeiter" (11 characters)
protected (Boolean): true
created_at (Integer): 1374478794
updated_at (Integer): 1374478794
After save()
surname (String): "Tempel" (6 characters)
prename (String): "Philipp" (7 characters)
archived (Boolean): false
created_at (Integer): 1374585392
updated_at (Integer): 1374587599
archived_at : null
record_id (String): "1" (1 characters)
rel_group_id (String): "1" (1 characters)
meta (Array, 86 elements) ↵
group (Array, 6 elements) ↵
group_id (String): "2" (1 characters)
name (String): "Mitarbeiter" (11 characters)
slug (String): "mitarbeiter" (11 characters)
protected (Boolean): true
created_at (Integer): 1374478794
updated_at (Integer): 1374478794
If save() is called right after changing the group, it works perfectly, however.
Using 1.6/master changes the output of the last \Debug::dump to rel_group_id (String): "2" (1 characters) which is the expected behavior.
Metadata
Metadata
Assignees
Labels
No labels