Passing params to form component – value of params is null

- SamuelThorn
- Member | 29
Hi,
I have just solved a mystery that took me a lot of time. I am posting this as I think it could help someone.
I had this form as a component, and I wished to pass some
params to it.
The component:
class EditForm extends UI\Control
{
public $params;
public function __construct($params)
{
parent::__construct();
$this->params = $params;
bdump($this->params); // (1) I will write about this later
}
public function createComponentForm()
{
bdump($this->params); // (2) I will write about this later
$form = new UI\Form;
/* form fields */
$form->onSuccess[] = [$this, 'processForm'];
return $form;
}
public function render()
{
$this->template->setFile(__DIR__.'/templates/editProgram.latte');
$this->template->render();
}
/**
* @param UI\Form $form
*/
public function processForm(UI\Form $form)
{
/* some data processing code */
$form->onSuccess;
}
}
Its factory:
interface IEditProgramFormFactory
{
/**
* @return EditProgramForm
*/
function create($params);
}
Which i call like this:
$form = $this->editProgramFormFactory->create([/* some values*/])
At first look nothing out of ordinary, but when I tried to run it, the first
bdump (1) returned the params as expected, but the
second one (2) was returning null no matter what I have tried
to do.
Finally i tried to rename the $params to something else (in my
case $pamareters) and voilà it all has started to work
normally.
Is $params some sort of “reserved variable”, or was doing
something wrong?
Last edited by SamuelThorn (2019-03-02 15:35)

- nightfish
- Member | 528
SamuelThorn wrote:
Is$paramssome sort of “reserved variable”, or was doing something wrong?
Yes, it is. See https://api.nette.org/…ent.php.html#147 for more details.

- SamuelThorn
- Member | 29
nightfish wrote:
Yes, it is. See https://api.nette.org/…ent.php.html#147 for more details.
I see now, thanks. But still… it was a nasty trap to crawl out from. ;-)