Form addRule : callback() is deprecated; use native PHP callback

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
motorcb
Člen | 552
+
0
-

Zdravím,

měl jsem následující kód ve formuláři:

$form->addText( 'nick', 'Nick:' )
   ->setRequired( 'Zadejte prosím nick' )
   ->addRule( callback( $this, 'isNickUnique' ), 'Zadaný nick již existuje. Zvolte si jiný' );

//....

    public function isNickUnique( $nick )
    {
        //...
        return $this->userRepository->isNickUnique( $nick->getValue() );
    }

Po upgrade na Nette 2.4 mi tracy vrací tuto chybu:
callback() is deprecated; use native PHP callback.

Jak ale mám dosazovat vyplněné jméno do parametru?

$form->addText( 'nick', 'Nick:' )
   ->setRequired( 'Zadejte prosím nick' )
   ->addRule( $this->isNickUnique, 'Zadaný nick již existuje. Zvolte si jiný' );

Díky

Pavel Kravčík
Člen | 1196
+
0
-

Děje se automaticky nebo si ho vytáhni z parametrů, které se Ti tam předají. Případně:

function($control, $argument) use ($moreArgs)
{
	//...
}
GEpic
Člen | 566
+
+6
-

Změň:

callback( $this, 'isNickUnique' )

Na:

[$this, 'isNickUnique']