/** * Constructor. * * @param string $alias Table alias. * @param string $table Table name. * @param string|array $pk Primary key. * @param DatabaseDriver $db Database adapter. * @param QueryHelper $queryHelper Query helper object. */ public function __construct($alias, $table, $pk = 'id', DatabaseDriver $db = null, QueryHelper $queryHelper = null) { $this->db = $db ?: DatabaseFactory::getDbo(); $this->pk = $pk ?: $alias . '.' . $pk; $this->queryHelper = $queryHelper ?: new QueryHelper($this->db); $this->addTable($alias, $table); $this->configure(); }
/** * Filter fields. * * @return array Filter fields. */ public function getFilterFields() { $fields = array(); foreach ($this->tables as $alias => $table) { $columns = DatabaseFactory::getCommand()->getColumns($table['name']); foreach ($columns as $key => $var) { $fields[] = "{$alias}.{$key}"; } } return $fields; }
/** * getDb * * @return DatabaseDriver */ public function getDb() { if (!$this->db) { $this->db = DatabaseFactory::getDbo(); } return $this->db; }
/** * Get table fields. * * @param string $table Table name. * * @return array */ protected function getFields($table = null) { $table = $table ?: $this->table; return array_keys(DatabaseFactory::getCommand()->getColumns($table)); }