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

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

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

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で飛ばされます。


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