inspiredminds / contao-backend-forms
Extension to Contao Haste for quick creation of back end forms.
Fund package maintenance!
fritzmg
Installs: 5 799
Dependents: 3
Suggesters: 0
Security: 0
Stars: 2
Watchers: 3
Forks: 2
Open Issues: 0
Type:contao-bundle
pkg:composer/inspiredminds/contao-backend-forms
Requires
- php: >=8.1
- codefog/contao-haste: ^5@dev
- contao/core-bundle: ^5.3.35
- symfony/dependency-injection: ^6.4 || ^7.3
- symfony/service-contracts: ^1.0 || ^2.0 || ^3.0
Requires (Dev)
- contao/easy-coding-standard: ^6.0
- contao/rector: ^1.0
This package is auto-updated.
Last update: 2025-10-22 13:56:02 UTC
README
Contao Backend Forms
Extension of Codefog\HasteBundle\Form\Form of codefog/contao-haste to quickly build a form for the back end.
Example
Create the form like a regular Haste Form, just via the BackendForm class in your back end controller for example:
// src/Controller/MyFormController.php namespace App\Controller; use Contao\CoreBundle\Controller\AbstractBackendController; use InspiredMinds\ContaoBackendFormsBundle\Form\BackendForm; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; #[Route('%contao.backend.route_prefix%/my-form', name: self::class, defaults: ['_scope' => 'backend'])] class MyFormController extends AbstractBackendController { public function __invoke(Request $request): Response { $form = new BackendForm('my-form', 'POST'); $form->addFormField('lorem', [ 'label' => ['Lorem', 'Lorem description.'], 'inputType' => 'text', 'eval' => ['tl_class' => 'w50', 'maxlength' => 255], ]); $form->addFormField('ipsum', [ 'label' => ['Ipsum', 'Ipsum description.'], 'inputType' => 'text', 'eval' => ['tl_class' => 'w50', 'maxlength' => 255], ]); $form->addSubmitFormField('Submit'); if ($form->validate()) { // Do something … return new RedirectResponse($request->getUriForPath($request->getPathInfo())); } return $this->render('my-form.html.twig', [ 'title' => 'My form', 'headline' => 'My form', 'form' => $form, ]); } }
{# templates/my-form.html.twig #} {% extends "@Contao/be_main" %} {% block main_content %} {{ form.generate()|raw }} {% endblock %}
This would then render a form like this:
