示例#1
0
 /**
  * {@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;
 }