container = $container; $this->db = $this->container['db']; $this->event = $this->container['event']; } /** * Load automatically models * * @access public * @param string $name Model name * @return mixed */ public function __get($name) { return Tool::loadModel($this->container, $name); } /** * Save a record in the database * * @access public * @param string $table Table name * @param array $values Form values * @return boolean|integer */ public function persist($table, array $values) { return $this->db->transaction(function($db) use ($table, $values) { if (! $db->table($table)->save($values)) { return false; } return (int) $db->getConnection()->getLastId(); }); } /** * Remove keys from an array * * @access public * @param array $values Input array * @param array $keys List of keys to remove */ public function removeFields(array &$values, array $keys) { foreach ($keys as $key) { if (isset($values[$key])) { unset($values[$key]); } } } /** * Force some fields to be at 0 if empty * * @access public * @param array $values Input array * @param array $keys List of keys */ public function resetFields(array &$values, array $keys) { foreach ($keys as $key) { if (isset($values[$key]) && empty($values[$key])) { $values[$key] = 0; } } } /** * Force some fields to be integer * * @access public * @param array $values Input array * @param array $keys List of keys */ public function convertIntegerFields(array &$values, array $keys) { foreach ($keys as $key) { if (isset($values[$key])) { $values[$key] = (int) $values[$key]; } } } }