public function create() { $grid = new Grid(); $grid->model = $this->clientFacade->createDSDoctrine(); $grid->addColumnText('name', 'Name')->setCustomRender(function ($item) { $href = $this->linkGenerator->link('Backend:Clients:update', array('id' => $item->id)); return "<a href ='" . $href . "'>" . $item->name . "</a>"; /* $el = Html::el('a'); // $item represents whole row. So you can get here any filed you want. $el->setText($item->name); $el->addAttributes(array('target'=>"_blank")); $el->href = $this->linkGenerator->link( 'Backend:Clients:product', // this is how you can generate any link MODULE_NAME:PRESENTER_NAME:ACTION_NAME array( // here is a place for path parameters. FE: here you are expecting /admin/<presenter>/<action>[/<id>] // id is a parameter we can set here. FYI [/<id>] means that id is not required parameter, it can be NULL. 'id' => $item->id ) ); return $el;*/ })->setSortable()->setFilterNumber(); $grid->addColumnText('product', 'Product')->setCustomRender(function ($item) { return $item->product->name; })->setSortable()->setFilterText()->setSuggestion(); $grid->addColumnText('address', 'Address')->setSortable()->setFilterText()->setSuggestion(); $grid->addActionHref('update', 'Update')->setIcon('pencil'); $grid->addActionEvent('delete', 'Delete', function ($item) { $this->clientFacade->delete($item); })->setIcon('trash-o')->setConfirm(function ($item) { return "Are you sure you want to delete {$item->name}?"; }); return $grid; }
public function create($clientId = NULL) { $form = new ClientsForm(); // set product collection $form->setProductsArray($this->productFacade->getProducts()); // create form base structure $form->create(); // // set default values if clientId is not NULL // if ($clientId) { // get client entity $client = $this->clientFacade->find($clientId); if ($client == NULL) { throw new InvalidArgumentException('Client with id=' . $clientId . ' not found.'); } // basic client fields $clientArray = array('name' => $client->getName(), 'address' => $client->getAddress()); // product if ($client->getProduct() !== NULL) { $clientArray['product'] = $client->getProduct()->getId(); } $form->setValues($clientArray); } $form->onSuccess[] = function (ClientsForm $form) use($clientId) { $values = $form->getValues(TRUE); $this->clientFacade->update($values, $clientId); }; return $form; }
public function renderDefault() { $this->template->clients = $this->clientFacade->getClients(); }