addColumn((new Column('name')) ->setOrderable(DataProvider::SORT_ASC) ->setSearchable(true, Column::TYPE_STRING)) ->addColumn((new Column('description')) ->setOrderable() ->setSearchable(true)); } public function initContent() { $this->addMassActionButton(new MassDeleteDomainAliasButton()); $this->addButton(new AddDomainAliasButton()); $this->addActionButton(new DeleteDomainAliasButton()); } public function loadData() { /** * load hosting */ $hosting = Hosting::where('id', $this->getRequestValue('id'))->first(); /** * load api client by server id * get repo * get aliases per domain */ $aliases = (new KerioManager()) ->getApiByServer($hosting->server) ->soap ->repository() ->domains ->getAliases($hosting->domain); /** * * prepare new array */ $data = []; /** * parse aliases */ foreach ($aliases as $domain) { /* @var $domain Domain */ $tmp = [ 'id' => $domain->getId(), 'name' => $domain->getName(), 'description' => $domain->getAttr(Domain::ATTR_DESCRIPTION) ]; $data[] = $tmp; } $dataProv = new ArrayDataProvider(); $dataProv->setDefaultSorting('name', 'ASC')->setData($data); $this->setDataProvider($dataProv); } }