public function afterInitialize() { if (is_null($this->name)) { $this->name = "Unnamed User"; } } } User::setOrder("name"); User::validates("name", array("presence" => true)); User::validates("name", array("format" => "^[\\p{L},]{2,} [\\p{L}\\s\\.]{2,}")); User::validates("email", array("presence" => true)); User::validates("email", array("format" => "^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})\$")); User::validates("email", array("uniqueness" => true, "allow_null" => true, "allow_blank" => true)); User::validates("user_level", array("numericality" => true)); User::validates("code", array("format" => "^[0-9]{5}\$", "allow_null" => true)); User::hasMany("tickets", array("class_name" => "Ticket")); User::hasOne("account"); User::beforeSave("before_save"); User::beforeSave("strip_invalid"); User::afterSave("after_save"); User::beforeDestroy("before_destroy"); User::afterDestroy("after_destroy"); User::beforeCreate("before_create"); User::afterCreate("after_create"); User::beforeUpdate("before_update"); User::afterUpdate("after_update"); User::scope("first_level", array("user_level" => 1)); User::scope("by_level", function ($args) { return "user_level=" . $args[0]; }); User::scope("by_level_and_date", function ($args) {
public function testQWithManyThruPostQuery() { $user = new User(); $user->resetAssociationDescription('groups'); $user->hasMany('groups', array('thru' => 'member', 'default_strategy' => 'Pfw_Associate_PostQuery')); $user->first_name = 'sean'; $user->save(); $group = new Group(); $group->name = "Sean's Group"; $group->save(); $user->associateWith($group); $users = User::Q()->with('groups')->exec(); $this->assertEquals("Sean's Group", $users[0]->groups[0]->name); $this->assertEquals($users[0]->id, $users[0]->groups[0]->member->user_id); $this->assertEquals('sean', $users[0]->first_name); $this->assertTrue(is_a($users[0]->groups[0]->member, 'Pfw_Model_Thru')); $u = new User($user->id); $u->retrieve(); $groups = $u->groups; $this->assertEquals("Sean's Group", $u->groups[0]->name); $this->assertEquals($users[0]->id, $u->groups[0]->member->user_id); }