Bootstrap formululáře-chyba
- Johnczek
- Člen | 37
Zdravím, chtěl jsem využít https://github.com/nextras/forms/ k formátování formulářů ve stylu bootstrapu. Ovšem nefunguje mi to vůbec.
Nainstaloval jsem si doplněk v root složce za pomocí
composer require nextras/forms
, ve složce vendor se mi vytvořila
složka bootstrap-3-render.
Takto vypadá basepresenter
<?php
namespace App\Presenters;
use Nette;
use Instante;
/**
* Base presenter for all application presenters.
*/
abstract class BasePresenter extends Nette\Application\UI\Presenter
{
protected function form() {
$form = new \Nette\Application\UI\Form;
$form->setRenderer(new Instante\Bootstrap3Renderer\BootstrapRenderer);
return $form;
}
}
A takto pak Homepagepresenter
<?php
namespace App\Presenters;
use Nette;
class HomepagePresenter extends BasePresenter
{
private $database;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
}
public function renderDefault()
{
}
protected function createComponentPolozkaForm() { //
//$form = new \Nette\Application\UI\Form;
$form = $this->form(); //<< změna
$form->addText('cislo', 'Číslo:', 12, 12)->addRule(Form::FILLED, 'Zadejte prosím číslo.');
//...
return $form;
}
}
Formulář v šabloně vypisuji za pomocí
{control polozkaForm}
I přesto že jsem postupoval podle návodu na foru, vypisuje tracy chybu Class ‚App\Presenters\Form‘ not found. Když jsem si vardumpnul v Basepresenteru render s bootstrapem, byl tma normálně položky z načteného projektu takže to se asi nepojí. Možná bude problém někde v namespacích a „use“. Moc se v tom ještě nevyznám, mohl by mi někdo poradit?
- CZechBoY
- Člen | 3608
Takhle to vypadá ok.
Nicméně ty používáš instante/bootstrap3renderer namísto nextras/forms
Editoval CZechBoY (11. 8. 2017 12:52)