Phalcon - praca z formularzami

Formularze są używane we wszystkich aplikacjach internetowych do akceptowania danych wejściowych od użytkownika jako żądania. Dane są akceptowane jako dane wejściowe, następnie przetwarzane i zapisywane w bazie danych lub wykonywana jest jakakolwiek inna operacja.

Phalcon zawiera komponent o nazwie Phalcon\Forms co pomaga w tworzeniu i utrzymywaniu form.

Rozważmy przykład samouczka Blog, który stworzyliśmy w poprzednich rozdziałach. Zawiera formularz, który służy do tworzenia nowej kategorii.

<?php echo \Phalcon\Tag::form(array("categories/create", "autocomplete" => "off")) ?>  
   <table width = "100%"> 
      <tr> 
         <td align = "left">
            <?php echo \Phalcon\Tag::linkTo(array("categories", "Go Back", "class" => "btn")) ?>
         </td> 
         <td align = "right"><
            ?php echo \Phalcon\Tag::submitButton(array("Save", "class" => "btn")) ?>
         </td> 
      <tr> 
   </table>  
   
   <?php echo $this->getContent(); ?>  
   
   <div align = "center"> 
      <h1>Create categories</h1> 
   </div>  
   <table align = "center"> 
      <tr> 
         <td align = "right"> 
            <label for = "name">Name</label> 
         </td> 
         <td align = "left"> 
            <?php echo \Phalcon\Tag::textField(array("name", "size" => 30)) ?> 
         </td> 
      </tr> 
     
      <tr> 
         <td align = "right"> 
            <label for = "slug">Slug</label> 
         </td> 
         <td align = "left"> 
            <?php echo \Phalcon\Tag::textField(array("slug", "size" => 30)) ?> 
         </td> 
      </tr> 
   </table> 
</form>

Output - Wytworzy następujący wynik.

Pola wejściowe formularza są renderowane za pomocą Phalcon/tagskładnik. Każdy element formularza można renderować zgodnie z wymaganiami programisty.

Poniżej znajduje się składnia renderowania wartości.

echo $form->render(element-name)

Validation -

Po wyrenderowaniu wartości w kontrolerze zostaną one wprowadzone do bazy danych za pomocą modeli. Formularze Phalcon są zintegrowane z komponentem walidacji, aby zapewnić natychmiastową walidację. Dla każdego elementu można ustawić wbudowane lub niestandardowe walidatory.

<?php  
use Phalcon\Forms\Element\Text; 
use Phalcon\Validation\Validator\PresenceOf; 
use Phalcon\Validation\Validator\StringLength;  

$name = new Text( 
   "Name" 
); 

$name->addValidator( 
   new PresenceOf([ "message" => "name is required", ]) 
); 

$form->add($name);

Output - Wytworzy następujący wynik.