Laravelフォームの検証

WBOY
リリース: 2016-06-23 13:05:33
オリジナル
1050 人が閲覧しました

リクエスト検証ファイルを作成します

php artisan make:request ArticlesRequest     Request created successfully.
ログイン後にコピー

ファイルの内容は次のとおりです:

app/Http/Requests/ArticlesRequest.php< ?phpnamespace App\Http\Requests;use App\Http\Requests\Request;class ArticlesRequest extends Request{    /**     * Determine if the user is authorized to make this request.     *     * @return bool     */    public function authorize()    {        return true;   //这个是管理权限的,暂时先设置为true,全部权限可用    }    /**     * Get the validation rules that apply to the request.     *     * @return array     */    public function rules()    {        return [            'title'=>'required',  //这里是指定验证的项目,和验证的规则,以数组的方式编写            'content'=>'required'        ];    }}
ログイン後にコピー

検証ルールは公式Webサイトを参照: https://laravel.com/docs/5.2/validation

変更コントローラーのストア メソッド

うろ覚えです

検証が追加されたので、ストア メソッドへのすべての受信リクエストがフィルタリングされますが、直接フィルタリングすると成功または失敗が分からないため、追加のプロンプトを追加する必要があります

app/Http/Requests/ArticlesRequest.phpuse App\Http\Requests\ArticlesRequest;//    public function store(Request $requests){    public function store(ArticlesRequest $requests){ //这里传入的是刚才创建的ArticlesRequest的实例        Articles::create($requests->all());        return redirect('/articles');    }
ログイン後にコピー

laravel 5.2 では、$ エラー変数がミドルウェア Web に存在する必要があることに注意してください。存在しない場合、laravel はエラー「未定義変数: エラー」を報告します。

通常の状況では、検証ルールをトリガーするエラー ポップアップ プロンプトが Web ページに表示されます (例:

resources/views/articles/create.blade.php@extends('layout.app')@section('content')    <h1>创建文章</h1>    {!! Form::open(['url'=>'/articles/store']) !!}            <!--- Title Field --->    <div class="form-group">        {!! Form::label('title', 'Title:') !!}        {!! Form::text('title', null, ['class' => 'form-control']) !!}    </div>    <!--- Content Field --->    <div class="form-group">        {!! Form::label('content', 'Content:') !!}        {!! Form::textarea('content', null, ['class' => 'form-control']) !!}    </div>    <!---  Field --->    <div class="form-group">        {!! Form::label('publish_at', 'publish_at:') !!}        {!! Form::date('publish_at', date('Y-m-d'), ['class' => 'form-control']) !!}    </div>    {!! Form::submit('发表文章',['class'=>'btn btn-primary form-control']) !!}    {!! Form::close() !!}    @if($errors->any())  //增加这里,$errors变量是laravel提供的,就是捕获这些出错而保存的变量,是一个数组        <ul class="list-group">            @foreach($errors->all() as $error) //所以需要循环变量数组,获取最终报错信息                <li class="list-group-item list-group-item-danger">{{$error}}</li>            @endforeach        </ul>    @endif@stop
ログイン後にコピー

中国語プロンプトに変更するなど、エラー プロンプト情報を書き換えるには、次のように書き換える必要があります)リクエスト ファイル内のメッセージ メソッドは、デフォルトではファイルに含まれていないため、

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