Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Laravel】Validationを設定して不正な入力をチェック!

いつもひよこのたまごをご利用下さいましてありがとうございます!
おかげ様でチュートリアル数も10ゲーム目となりました!
チュートリアル一覧は
こちら からどうぞ!


スポンサーリンク

PHPバージョン:7.1.14
Laravelバージョン:5.7.9

今回はLaravelのValidationについてです!

Validationとは「検証」という意味で、
例えば入力必須の項目が空欄だとか
メールアドレスが正しく入力されていないとか、
そういった不備を検証する機能です!
Laravelにも標準搭載されているので見ていきたいと思います!


モデルにValidationのルールを定義

まずはArticleモデルにValidationのルールを定義します!

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    protected $guarded = ['id'];

    public static $rules = array(
        'title' => 'required',
        'body' => 'required',
    );
}

app>Models>Article.php

$rulesという静的フィールドに
配列で各カラムに対するValidationのルールを
string型で定義します。
'required'と定義することで未入力チェックを行います。

コントローラーでValidationを実行

続いてコントローラーにてValidationを使い、
titleとbodyの未入力のチェックを行います。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Article;

class ResController extends Controller
{
    public function index()
    {
        $articles = Article::all();
        return view('res.index', ['articles'=>$articles]);
    }

    public function create()
    {
        return view('res.create');
    }

    public function store(Request $request)
    {
        $this->validate($request, Article::$rules);

        Article::create([
            'title' => $request->title,
            'body' => $request->body,
            'category' => '',
            'good' => 0,
        ]);

        return redirect('articles');
    }
}

app>Http>Controllers>ResController.php

indexメソッドはArticleモデルを全件取得し、
index.blade.phpにて全件表示します。

createメソッドは記事作成フォームを表示します。

storeメソッドでValidationを実行しています。
コントローラーのvalidateメソッドを使います。
第一引数の$requestはフォームから送られてきた値です。
第2引数は先ほど作成したArticleモデルのValidationルールです。

validateメソッドは第一引数に値、第二引数にValidationルールを指定することで
Validationを実行します。

もしtitleかbodyいずれかが未入力の場合は
自動的にフォームへ戻されます。

titleとbody両方とも入力されていれば、
記事一覧ページへredirectで飛ばされます。


今回はここまでです、ありがとうございました〜!