Nella convalida del modulo del browser in laravel

2

In laravel 5 descrivo i modelli senza specificare i campi nella classe del modello. Alcune magie identificano quali campi esistono nel database per questo modello.

use Illuminate\Database\Eloquent\Model;

class MyModel extends Model {}

Quando descrivo la migrazione per la tabella del modello, specificherò il tipo di campo, la lunghezza e così via. Queste informazioni esistono solo nella mia testa e nel database.

Quando devo convalidare i dati, devo specificare nuovamente i requisiti.

Cosa voglio - descrivere tutti i requisiti per tutti i campi in un unico posto. Mi piace così:

class MyModel extends Model {
    public $form_fields = [
        'email' => ['required', 'email', 'human_name' => 'E-mail', 'input_type' => 'text'],
        'age' => ['required', 'positive_integer', 'range:18,90', 'input_type' => 'text'],
        'first_name' => ['string', 'human_name' => 'Your first name', 'input_type' => 'text'],
        'agreement' => ['required', 'human_name' 
    ];
}

Perché ho bisogno di questo?

In questo modo voglio assicurarmi che tutte le regole per tutti i modelli vengano scritte in un unico posto.

In seguito voglio prendere queste regole in convalida

$this->validate($request, MyModel::$form_fields);

e nei modelli

{{ show_field(MyModel::$form_fields['email']) }}
{{ show_field(MyModel::$form_fields['age']) }}
{{ show_field(MyModel::$form_fields['first_name']) }}

show_field è una funzione globale che accetta "human_name" e "input_type" e genera codice html con tutte le regole di convalida richieste. Potrebbe esserci qualche funzione o classe con la funzionalità richiesta?

Come posso ottenere questo?

    
posta changer 21.10.2016 - 09:06
fonte

0 risposte

Leggi altre domande sui tag