problem s vytvorenm formu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- cujan
- Člen | 410
chybova hlaska
Argument 1 passed to App\Forms\RecordFormFactory::__construct() must be an
instance of App\Forms\FormFactory, none given, called in C:\Program Files
(x86)\EasyPHP-Devserver-16.1\eds-www\aaa\app\presenters\HomepagePresenter.php on
line 33 and defined
<?php
namespace App\Forms;
use Nette;
use Nette\Application\UI\Form;
class FormFactory
{
use Nette\SmartObject;
/**
* @return Form
*/
public function create()
{
$form = new Form;
return $form;
}
}
namespace App\Forms;
use Nette\Application\UI\Form,
App\Forms\FormFactory;
/**
* Description of RecordFormFactory
*
* @author Holub
*/
class RecordFormFactory {
/** @var FormFactory */
private $factory;
public function __construct(FormFactory $factory)
{
$this->factory = $factory;
}
/**
* @return Form formulár pre zápis záznamov
*/
public function create()
{
$form = $this->factory->create();
$form->addHidden('creationDate')->setValue(date('Y-m-d'));
return $form;
}
}
presenter
/** @var ArticleManager Instance třídy modelu pro práci s články. */
protected $recordManager;
/**
* Konstruktor s injektovaným modelem pro práci s články.
* @param ArticleManager $articleManager automaticky injektovaná třída modelu pro práci s články
*/
public function __construct(RecordManager $recordManager)
{
parent::__construct();
$this->recordManager = $recordManager;
}
public function renderDefault()
{
$this->template->records = $this->recordManager->getRecords();
}
protected function createComponentRecordForm()
{
$form = (new RecordFormFactory())->create();
return $form;
}
- cujan
- Člen | 410
CZechBoY napsal(a):
Předej si
RecordFormFactory
přes konstruktor (nezapomeň zaregistrovat továrničku jako službu v config.neon).
no uz som z toho jelen…mam to predane a dnes spustim aplikaciu a yas ta ista hlaska, temp som zmazal
/** @var ArticleManager Instance třídy modelu pro práci s články. */
protected $recordManager;
protected $recordFormFactory;
/**
* Konstruktor s injektovaným modelem pro práci s články.
* @param ArticleManager $articleManager automaticky injektovaná třída modelu pro práci s články
*/
public function __construct(RecordManager $recordManager, RecordFormFactory $recordFormFactory)
{
parent::__construct();
$this->recordManager = $recordManager;
$this->recordFormFactory = $recordFormFactory;
}
public function renderDefault()
{
$this->template->records = $this->recordManager->getRecords();
}
public function createComponentRecordForm()
{
$form = (new RecordFormFactory())->create();
return $form;
}
- David Matějka
- Moderator | 6445
tu injectnutou recordFormFactory musis vyuzit. kdyz tam znovu vytvaris
instanci pres new
, tak by ti byla celkem k nicemu :))