fields - Campi Last updated: 2020-08-17 11:50:55

Controllano la renderizzazione dei campi di ogni modello, attraverso il public function fields() di ogni pannello.

Esempio semplice:

            (object) [
                'type' => 'Image',
                'name' => 'post.image_src',
            ],

'type' corrisponde al nome di uno dei componenti, che si vuole utilizzare, che si trovano nel modulo Formx in laravel\Modules\FormX\Resources\views\includes\components\input. Da inserire sempre con prima lettera maiuscola.

Nell'esempio type uguale a Image significa che si vuole utilizzare il componente che si trova in laravel\Modules\FormX\Resources\views\includes\components\input\image\field.blade.php.

In caso si volesse utilizzare il componente laravel\Modules\FormX\Resources\views\includes\components\input\image\field_dropzone.blade.php impostare type con ImageDropzone.

 

'name' è il campo che si vuole visualizzare.  In caso di un campo appartenente alla tabella pivot, utilizzare da dicitura tabella_pivot.campo_pivot. Si può inizializzare anche con il nome di una relazione appartenente al modello corrispondente.

            (object) [
                'type' => 'Text',
                'name' => 'productCats',
                'attributes' => ['group_class' => 'col-6', 'class' => 'myclass'],
            ],

 

'attributes'  è un array che può contenere altri dettagli dell'input che si vuole generare:
  • 'group_class' si possono inserire le classi css utilizzare nel componente blade che conterrà l'input.
  • 'class' le classi css utilizzate sull'input.
            (object) [
                'type' => 'Text',
                'name' => 'post.title',
                'rules' => 'required|min:3|max:50|unique:'.$post_table.',title',
                'except' => ['index', 'index_edit'],
            ],
'rules' sono le regole (laravel) che si applicano sul campo in questione.
'except' indica in quali route NON si vuole visualizzare il campo.
            (object) [
                'type' => 'Select',
                'name' => 'productCats',
                'attributes' => ['group_class' => 'col-6'],
                'value' => 10,
                'options' => [10 => 'aaa', 11 => 'bbb'],
            ],
'value' corrisponde all attributo value dell'input, in questo caso il valore di default della select. Nell'esempio si sta utilizzando una semplice select con all'interno il risultato della relazione productCats del modello.
'options' valori che potranno essere selezionati nella select.
            (object) [
                'type' => 'Text',
                'name' => 'cabine',
                'rules' => 'required',
                'comment' => null,
                'col_bs_size' => 4,
                'div_row' => ['open', 'class' => 'm-0'], 
                //oppure
                'div_row' => ['close'], 
                'except' => ['index'],
            ],
 
'div_row' da utilizzare quando c'è bisogno di inserire più campi/fields su una sola riga. Open aprirà un div con class css row, si può aggiungere anche l'elemento 'class' nel caso si voglia aggiugere qualche altro css suddetto div. Da utilizzare in combinazione con
'col_bs_size' che setterà la grandezza del div che conterrà il field in base alle regole del grid di bootstrap.
 
    if(!isset($field->help)){
        $field->help=trans($view.'.field.'.$name.'_help');
    }
...quel $field->help????