Ik was bezig om mijn form in een object te stoppen en vervolgens een validatie functie van het object piet van de klasse Piet mee te geven aan een form. Dit gaat goed, totdat ik echter 2 validatie functies tegelijk wil gaan gebruiken, zie onderstaand voorbeeld.
<?php
class Piet
{
private $form;
public function __construct()
{
$this->form = new FormHandler("Pietjesform");
$this->form->textfield("Jan", "jan", FH_ALPHA_NUM);
$this->form->textField("Username", "username", /*FH_ALPHA_NUM . '|' .*/ array(&$this, "check_username"));
$this->form->submitButton("Log in");
$this->form->onCorrect(array(&$this,"doLogin"));
}
public function check_username($username)
{
if($username == "lala")
{
return "Deze username bestaat niet.";
}
werkt het niet meer. En krijg ik de volgende fout: Notice: class.Field.php at 194 Unknown validator: "Array" used in field "username"
Is hier een makkelijke oplossing voor?
Dat is een van de redenen dat het een "undocumented feature" is ;)
We zijn er nog niet precies over uit hoe we dit het netst op kunnen lossen. Het mooiste zou ik persoonlijk een dergelijke constructie vinden:
Maar zoals gezegd, dit is EEN mogelijkheid, weet nog niet of het de beste is. Voor nu raad ik je aan om de FH_ALPHA_NUM aan te roepen in je check_username methode, of om daar een soortgelijke check uit te voeren.