public static function __init() { parent::__init(); self::applyFilter('set', function ($self, $params, $chain) { if (isset($params['data']['email_address'])) { $newEmail = strtolower($params['data']['email_address']); $params['data']['email_address'] = $newEmail; #die; } return $chain->next($self, $params, $chain); }); self::applyFilter('validates', function ($self, $params, $chain) { $chainValid = $chain->next($self, $params, $chain); $valid = true; $conditions = array('email_address' => $params['entity']->email_address); if ($params['entity']->exists()) { $conditions['_id'] = array('$ne' => $params['entity']->_id); } $othersWithSameEmail = $self::count($conditions); if ($othersWithSameEmail > 0) { $valid = false; $params['entity']->errors('email_address', 'This address is already taken.'); } return $valid and $chainValid; }); }
public static function __init() { parent::__init(); // Ensure that exactly two teams are set self::applyFilter('validates', function ($self, $params, $chain) { $chainValid = $chain->next($self, $params, $chain); $valid = true; if (!isset($params['entity']->teams) or count($params['entity']->teams) !== 2) { $valid = false; $params['entity']->errors('teams', 'Each game must have exactly two teams.'); } return $valid and $chainValid; }); // Ensure that all teams are in the league self::applyFilter('validates', function ($self, $params, $chain) { $chainValid = $chain->next($self, $params, $chain); $valid = true; if (isset($params['entity']->teams)) { foreach ($params['entity']->teams as $team_id) { $team = Teams::find((string) $team_id); if (!isset($team) or $team->league_id != $params['entity']->league_id) { $valid = false; $params['entity']->errors('teams', 'Both teams must be members of this league.'); break; } } } return $valid and $chainValid; }); // self::applyFilter('save', function($self, $params, $chain) { // var_dump($params['entity']); die; // }); }
public static function __init() { parent::__init(); self::applyFilter('save', function ($self, $params, $chain) { if (isset($params['data']['registration_open'])) { $oldDate = strtotime($params['data']['registration_open']); $params['data']['registration_open'] = mktime(12, 0, 0, date('n', $oldDate), date('j', $oldDate), date('Y', $oldDate)); } if (isset($params['data']['registration_close'])) { $oldDate = strtotime($params['data']['registration_close']); $params['data']['registration_close'] = mktime(23, 59, 59, date('n', $oldDate), date('j', $oldDate), date('Y', $oldDate)); } return $chain->next($self, $params, $chain); }); }