Heim  >  Artikel  >  Backend-Entwicklung  >  Grundlagen von Laravel 5 (11) – Formularvalidierung

Grundlagen von Laravel 5 (11) – Formularvalidierung

WBOY
WBOYOriginal
2016-08-08 09:26:47728Durchsuche

Wenn Sie einen Artikel erstellen und ihn direkt einreichen, ohne etwas einzugeben, erhalten Sie einen leeren Artikel ohne Fehlermeldung, was falsch ist. Führen Sie php artisan in der Befehlszeile aus und Sie sehen eine Option make:request zum Erstellen einer neuen Formularanforderungsklasse. Auf der Befehlszeile ausführen

<code>php artisan make:request CreateArticleRequest</code>

Die generierten Dateien befinden sich im Verzeichnis app/http/requests. In der Datei sehen wir zwei Methoden:

<code>	public function authorize()
	{
		return false;
	}
	
	public function rules()
	{
		return [
			//
		];
	}</code>

authorize Gibt an, ob der Benutzer beim Absenden des Formulars ein authentifizierter Benutzer sein muss. Wir benötigen keine Authentifizierung und geben true zurück. rules ist unsere Regelmethode. Lassen Sie uns diese Methode ändern:

<code>	public function authorize()
	{
		//修改为 true,表示不需要认证,或者是通过认证
		return true;
	}
	
	public function rules()
	{
		return [
			'title' => 'required|min:3',
        'body' => 'required',
        'published_at' => 'required|date'
		];
	}</code>

Weitere Einschränkungen finden Sie in der Dokumentation von Laravel. Die oben genannten Einschränkungen bedeuten, dass title eingegeben werden muss, mindestens 3 Zeichen, body erforderlich ist, published_at erforderlich ist und ein Datum ist.

In der Ansicht können wir jederzeit auf die Variable $errors zugreifen, um festzustellen, ob ein Fehler vorliegt, und die Ansicht

ändern
<code>
    @if ($errors->any())
        <ul class="alert alert-danger">
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    @endif
    
    {{--使用我们添加的 illuminate\html 开源库--}}
    {!! Form::open(['url' => 'articles']) !!}</code>

Ändern Sie den Controller und führen Sie unsere Request-Klasse ein.

<code>    public function store(Requests\CreateArticleRequest $request) {
        Article::create($request->all());

        return redirect('articles');
    }</code>

Senden Sie das Formular erneut, ohne etwas auszufüllen, und Sie sehen die Fehlermeldung.

Ändern Sie die Eingabeaufforderungsinformationen auf Chinesisch

zeigt die Fehlermeldung auf Englisch an. Tatsächlich berücksichtigt Laravel das Problem der Internationalisierung und ändert zunächst config/app.php und

<code>	'locale' => 'zh',</code>

Stellen Sie die Sprache des Gebietsschemas auf Chinesisch ein, erstellen Sie dann einen neuen Ordner resources/lang unter zh, kopieren Sie die Datei resources/lang/en/validation.php in das Verzeichnis zh und ändern Sie Folgendes:

<code>	"min"                  => [
		"numeric" => "The :attribute must be at least :min.",
		"file"    => "The :attribute must be at least :min kilobytes.",
		"string"  => ":attribute 至少要包含 :min 字符。",
		"array"   => "The :attribute must have at least :min items.",
	],
	
	"required"             => ":attribute 必须填写。",</code>

Andere können Sie selbst übersetzen. Senden Sie das leere Formular erneut und die Fehlermeldung ist auf Chinesisch. Und das Urteil von min:3 beträgt auch mindestens 3 chinesische Schriftzeichen.

--

Laravel integriert auch die validate-Methode in den Controller. Mit anderen Worten, wir müssen die Anforderungsklasse nicht direkt im Controller generieren.

Controller ändern:

<code>	 //注意 Request 的命名空间,不要弄错了
    public function store(\Illuminate\Http\Request $request) {

        $this->validate($request, [
            'title' => 'required|min:3',
            'body' => 'required',
            'published_at' => 'required|date'
        ]);

        Article::create($request->all());

        return redirect('articles');
    }</code>

Die Ergebnisse sind die gleichen, sodass eine einfache Überprüfung schneller abgeschlossen werden kann.

Das Obige hat die Grundlagen von Laravel 5 (11) vorgestellt – die Formularvalidierung, einschließlich ihrer Aspekte. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn