Chyba při vytvářní komponenty
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Taps
- Člen | 169
Zdravím, po vzoru přihlašovacího formuláře se snažím udělat novou komponentu, avšak se mi zobrazuje níe uvedené. Mohl by mi prosím někdo poradit. Děkuji
Class or interface 'App\Presenters\Forms\RecordsFormFactory' used in @var annotation at App\Presenters\RecordsPresenter::$recordsFactory not found. Check annotation and 'use' statements
soubor RecordsFormFactory vypadá takto
<?php
namespace App\Forms;
use Nette;
use Nette\Application\UI\Form;
use Nette\Security\User;
use App\Model;
class RecordsFormFactory
{
use Nette\SmartObject;
/** @var FormFactory */
private $factory;
/** @var Model\RecordsManager */
private $recordsManager;
public function __construct(FormFactory $factory, Model\RecordsManager $recordsManager)
{
$this->factory = $factory;
$this->records = $recordsManager;
}
/**
* @return Form
*/
public function create(callable $onSuccess)
{
$form = $this->factory->create();
$form->addText('number', 'Číslo jednací:')
->setRequired('Zadejte číslo jednací.');
$form->addPassword('pretender', 'Žadatel:')
->setRequired('Zadejte žadatele.');
$form->addSelect('IdList', 'Výpis:', $list)
->setPrompt('Zvolte typ výpisu');
$form->addSubmit('send', 'Uložit');
$form->onSuccess[] = function (Form $form, $values) use ($onSuccess) {
try {
} catch (Nette\Security\AuthenticationException $e) {
$form->addError('Uživatelské jméno nebo heslo není správné.');
return;
}
$onSuccess();
};
return $form;
}
}
a soubor RecordsPresenter
<?php
namespace App\Presenters;
use Nette;
use App\Model;
class RecordsPresenter extends BasePresenter
{
/** @var Forms\RecordsFormFactory @inject */
public $recordsFactory;
public function renderDefault()
{
if(!$this->getUser()->isLoggedIn()){
$this->redirect('Sign:in');
}
else{
}
}
/**
* Sign-in form factory.
* @return Nette\Application\UI\Form
*/
protected function createComponentRecordsAddForm()
{
return $this->recordsFactory->create(function () {
$this->redirect('Homepage:');
});
}
}