Ako vytvoriť formulár v priečinku app/forms a správne ho použiť?

Takeshi
Člen | 596
+
0
-

Ahojte,

snažím sa vytvoriť formulár, aby bol použiteľný s obmeniteľnými údajmi. Neviem kde je chyba. Prosím poraďte mi. Ďakujem. Takže

forms/LevelFormFactory.php

<?php

namespace App\Forms;

use Nette;
use Nette\Application\UI\Form;
use Nette\Security\User;


class LevelFormFactory extends Nette\Object
{
	/** @var FormFactory */
	private $factory;

	/** @var User */
	private $user;


	public function __construct(FormFactory $factory, User $user)
	{
		$this->factory = $factory;
		$this->user = $user;
	}


	/**
	 * @return Form
	 */
	public function create($array)
	{
		$form = $this->factory->create();
		$form->addSelect("vyber","Výber",$array);

		$form->addSubmit('send', 'Prihlásiť');

		$form->onSuccess[] = array($this, 'formSucceeded');
		return $form;
	}


	public function formSucceeded(Form $form)
	{
	    $values = $form->getValues();
            echo "AAA";
	}

}

…***Presenter.php

/** @var LevelFormFactory @inject */
public $level;

public function createComponentLevelForm(){
    $form = $this->level->create($this->database->table("level_1")->select("meno"));
    $this->template->form = $form;
    $form->onSuccess[] = function ($form) {
        $form->getPresenter()->redirect('Homepage:');
    };
    return $form;
}

default.latte

{control levelForm}

Editoval Takeshi (10. 12. 2017 14:34)

Takeshi
Člen | 596
+
0
-

A ukazuje mi chybu …

Class or interface 'App\Presenters\LevelFormFactory' used in @var annotation at App\Presenters\AdminPresenter::$level not found. Check annotation and 'use' statements.

u6 som pridal aj do config.neon …

	- App\Forms\LevelFormFactory
Takeshi
Člen | 596
+
0
-

… tak nakoniec som pridal do Presentera

use App\Forms\LevelFormFactory;

a funguje

GEpic
Člen | 562
+
0
-

Takeshi napsal(a):

… tak nakoniec som pridal do Presentera

use App\Forms\LevelFormFactory;

a funguje

Prosim tě – a to ti IDE nezobrazilo chybu, že neví jakou třídu se snažíš použít?

Editoval GEpic (11. 12. 2017 10:20)