示例#1
0
 /**
  * Helper to build the entity form.
  * 
  * @param Admin      $app
  * @param string     $entityName
  * @param mixed|null $id
  * 
  * return \Folk\Formats\Form
  */
 protected static function createForm(Admin $app, $entityName, $id = null)
 {
     $entity = $app->getEntity($entityName);
     $form = F::form()->method('post')->enctype('multipart/form-data')->add(['entity' => F::hidden()->val($entityName)->class('field-data-entity'), 'data' => $entity->getScheme($app['builder'])]);
     if ($id !== null) {
         $form['id'] = F::hidden()->val($id)->class('field-data-id');
     }
     return $form;
 }
示例#2
0
 public function json(Request $request, Admin $app, $entityName)
 {
     $entity = $app->getEntity($entityName);
     $search = new SearchQuery($request->getQueryParams());
     $json = [];
     foreach ($this->search($entity, $search) as $id => $item) {
         $json[$id] = $entity->getLabel($id, $item);
     }
     return json_encode($json);
 }
示例#3
0
 public function html(Request $request, Admin $app, $entityName)
 {
     $entity = $app->getEntity($entityName);
     $form = static::createForm($app, $entityName);
     $form->loadFromPsr7($request);
     if ($form->validate()) {
         return new RedirectResponse($app->getRoute('read', ['entity' => $entityName, 'id' => $entity->create($form['data']->val())]));
     }
     echo $app['templates']->render('pages/insert', ['entityName' => $entityName, 'form' => $form]);
     return Factory::createResponse(400);
 }
示例#4
0
 public function html(Request $request, Admin $app, $entityName)
 {
     $app->getEntity($entityName)->delete($request->getAttribute('id'));
     return new RedirectResponse($app->getRoute('search', ['entity' => $entityName]));
 }