ホームページ > バックエンド開発 > PHPチュートリアル > Laravel 5 の基本 (11) - フォームの検証

Laravel 5 の基本 (11) - フォームの検証

WBOY
リリース: 2016-06-13 12:17:16
オリジナル
816 人が閲覧しました

Laravel 5 の基本 (11) - フォームの検証

記事を作成するときに、何も入力せずに直接送信すると、エラー プロンプトが表示されずに空の記事が表示されますが、これは間違いです。コマンドラインで php artisan を実行すると、新しいフォームリクエストクラスを作成するためのオプション make:request が表示されます。コマンドラインで

<code>php artisan make:request CreateArticleRequest</code>
ログイン後にコピー

を実行して、app/http/requests ディレクトリにファイルを生成します。ファイルには 2 つのメソッドがあります。

<code>	public function authorize()	{		return false;	}		public function rules()	{		return [			//		];	}</code>
ログイン後にコピー

authorize は、フォームを送信するときにユーザーが認証されたユーザーである必要があるかどうかを示します。認証は必要なく、true を返します。 rules はルールメソッドです。このメソッドを変更しましょう:

<code>	public function authorize()	{		//修改为 true,表示不需要认证,或者是通过认证		return true;	}		public function rules()	{		return [			&#39;title&#39; => &#39;required|min:3&#39;,        &#39;body&#39; => &#39;required&#39;,        &#39;published_at&#39; => &#39;required|date&#39;		];	}</code>
ログイン後にコピー

その他の制約については、laravel のドキュメントを参照してください。上記の制約は、title を少なくとも 3 文字入力する必要があること、body が必須であること、published_at が必須であること、および日付であることを示しています。

ビューでは、いつでも $errors 変数にアクセスしてエラーがあるかどうかを確認したり、ビューを変更したり

<code>    @if ($errors->any())        <ul class="alert alert-danger">            @foreach($errors->all() as $error)                <li>{{ $error }}</li>            @endforeach        </ul>    @endif        {{--使用我们添加的 illuminate\html 开源库--}}    {!! Form::open([&#39;url&#39; => &#39;articles&#39;]) !!}</code>
ログイン後にコピー

コントローラーを変更したり、Request クラスを導入したりできます。

<code>    public function store(Requests\CreateArticleRequest $request) {        Article::create($request->all());        return redirect(&#39;articles&#39;);    }</code>
ログイン後にコピー

何も入力せずにフォームを再度送信すると、エラー メッセージが表示されます。

プロンプト情報を中国語に変更します

は英語でエラーメッセージを表示します 実際、laravel は国際化の問題を考慮して、最初に config/app.php

<code>	&#39;locale&#39; => &#39;zh&#39;,</code>
ログイン後にコピー
< を変更します。 🎜 >ロケール言語を中国語に設定し、

の下に新しいフォルダー resources/lang を作成し、zh ファイルを resources/lang/en/validation.php ディレクトリにコピーして、次のように変更します。zh

<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>
ログイン後にコピー
その他の言語も可能自分で翻訳したもの。空のフォームを再度送信すると、エラー メッセージが中国語で表示されます。そして

の判定も漢字3文字以上です。 min:3

--

Laravel は、コントローラーに

メソッドも統合します。言い換えれば、これらのタスクをコントローラー内で直接完了することができます。 。 validate

コントローラーを変更します:

<code>	 //注意 Request 的命名空间,不要弄错了    public function store(\Illuminate\Http\Request $request) {        $this->validate($request, [            &#39;title&#39; => &#39;required|min:3&#39;,            &#39;body&#39; => &#39;required&#39;,            &#39;published_at&#39; => &#39;required|date&#39;        ]);        Article::create($request->all());        return redirect(&#39;articles&#39;);    }</code>
ログイン後にコピー
結果は同じなので、単純な検証はより迅速に完了できます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート