/** * {@inheritdoc} */ public function add($data, $alias, array $options = array()) { // Support embeddables forcing the two backslashes in the column name if (strpos($data, '\\') !== false) { $data = str_replace('\\', '\\\\', $data); } /** * @var AbstractColumn $column */ $column = ColumnFactory::createColumnByAlias($alias); $column->setTableName($this->tableName); $column->setData($data); $column->setDql($data); $column->setupOptionsResolver($options); $addColumn = $column->isAddIfClosure(); if (true === $addColumn) { $column->setIndex(count($this->columns)); $this->columns[] = $column; } if (true === $addColumn && $column instanceof MultiselectColumn) { if (false === $this->multiselect) { $this->multiselect = true; $this->multiselectColumn = $column; } else { throw new Exception('add(): There is only one multiselect column allowed.'); } } return $this; }
/** * {@inheritdoc} */ public function add($data, $name, array $options = array()) { /** * @var AbstractColumn $column */ $column = $this->columnFactory->createColumnByName($name); $column->setData($data); $column->setDql($data); $column->setupOptionsResolver($options); $this->columns[] = $column; if ($column instanceof MultiselectColumn) { if (false === $this->multiselect) { $this->multiselect = true; $this->multiselectColumn = $column; } else { throw new Exception('add(): There is only one multiselect column allowed.'); } } return $this; }