File tree Expand file tree Collapse file tree 3 files changed +26
-1
lines changed
Expand file tree Collapse file tree 3 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -428,7 +428,7 @@ public function __set($name, $value)
428428 if (array_key_exists ($ name , static ::$ alias_attribute ))
429429 $ name = static ::$ alias_attribute [$ name ];
430430
431- elseif (method_exists ($ this ,"set_ $ name " ))
431+ if (method_exists ($ this ,"set_ $ name " ))
432432 {
433433 $ name = "set_ $ name " ;
434434 return $ this ->$ name ($ value );
Original file line number Diff line number Diff line change @@ -281,6 +281,22 @@ public function test_alias_attribute_setter()
281281 $ this ->assert_equals ($ venue ->marquee , $ venue ->name );
282282 }
283283
284+ public function test_alias_attribute_custom_setter ()
285+ {
286+ Venue::$ use_custom_set_city_setter = true ;
287+ $ venue = Venue::find (1 );
288+
289+ $ venue ->mycity = 'cityname ' ;
290+ $ this ->assert_equals ($ venue ->mycity , 'cityname# ' );
291+ $ this ->assert_equals ($ venue ->mycity , $ venue ->city );
292+
293+ $ venue ->city = 'anothercity ' ;
294+ $ this ->assert_equals ($ venue ->city , 'anothercity# ' );
295+ $ this ->assert_equals ($ venue ->city , $ venue ->mycity );
296+
297+ Venue::$ use_custom_set_city_setter = false ;
298+ }
299+
284300 public function test_alias_from_mass_attributes ()
285301 {
286302 $ venue = new Venue (array ('marquee ' => 'meme ' , 'id ' => 123 ));
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ class Venue extends ActiveRecord\Model
44 static $ use_custom_get_state_getter = false ;
55 static $ use_custom_set_state_setter = false ;
66
7+ static $ use_custom_set_city_setter = false ;
78
89 static $ has_many = array (
910 'events ' ,
@@ -32,5 +33,13 @@ public function set_state($value)
3233 else
3334 return $ this ->assign_attribute ('state ' , $ value );
3435 }
36+
37+ public function set_city ($ value )
38+ {
39+ if (self ::$ use_custom_set_city_setter )
40+ return $ this ->assign_attribute ('city ' , $ value . '# ' );
41+ else
42+ return $ this ->assign_attribute ('city ' , $ value );
43+ }
3544
3645}
You can’t perform that action at this time.
0 commit comments