/**
  * @throws RuntimeException
  * @return Form
  */
 public function getFilterForm()
 {
     $filters = $this->entity->getOptions()->getFilter();
     if ($filters) {
         if (is_string($filters)) {
             $form = $this->serviceLocator->get($filters);
         } elseif (is_array($filters)) {
             $simple = true;
             foreach ($filters as $filter) {
                 $simple = $simple && is_string($filter);
             }
             if ($simple) {
                 $form = new Form();
                 $form->setAttribute('method', 'GET');
                 foreach ($filters as $filter) {
                     $label = str_replace('_', ' ', $filter);
                     $form->add(new Text($filter, ['label' => $label]));
                 }
                 $submit = new Button('submit', ['label' => 'Filter']);
                 $submit->setAttribute('type', 'submit');
                 $form->add($submit);
             } else {
                 $factory = new Factory();
                 $form = $factory->createForm($filters);
             }
         } else {
             throw new RuntimeException('Unknown type of filter');
         }
         return $form;
     }
     return new Form();
 }
Ejemplo n.º 2
0
 /**
  * @param Entity $entity
  * @param Paginator $pagination
  */
 public function createTable(Entity $entity, Paginator $pagination)
 {
     $table = new Table();
     $table->createHead($entity->getOptions()->getFields());
     $hydrator = new ClassMethods();
     foreach ($pagination as $entity) {
         $row = $table->createRow();
         foreach ($hydrator->extract($entity) as $key => $value) {
             $row->setValue($key, $value);
         }
     }
     return $table;
 }