どうも、cocomaruです。
今回はLaravelのバリデーションをコントローラから切り出してみます。
別にするにあたり、「フォームリクエストバリデーション」という仕組みを使っていきたいと思います。
フォームリクエスト作成
まずは以下のコマンドでフォームリクエストクラスを作成しましょう。
# フォームリクエストクラスを作成 $ php artisan make:request TaskRequest # 以下にクラスが作成される $ ls ./app/Http/Requests/ TaskRequest.php
中身を見ると以下のようになっています。
app/Http/Requests/TaskRequest.php
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class TaskRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
これを以下の通り、編集してみましょう。
// ...
public function authorize()
{
// trueへ
return true;
}
public function rules()
{
return [
// 「task_name」のリクエストデータを「必須」「最大文字数255文字まで」を追加
'task_name' => 'required|max:255',
];
}
コントローラ編集
次はコントローラですね。
前々回のソースを流用します。
app/Http/Controllers/TaskController.php
<?php
// TaskRequestを追加
use App\Http\Requests\TaskRequest;
// ...
//storeメソッドの引数にTaskRequestをタイプヒントで指定します。
public function store(TaskRequest $request)
{
// 以下の処理を削除
// $validator = Validator::make($request->all(), [
// 'task_name' => 'required|max:255',
// ]);
// if ($validator->fails()) {
// return redirect('/')
// >withInput()
// ->withErrors($validator);
// }
// ...
}
これでバリデートの指定は終わりです。
特に難しい事はなかったかと思います!
これでバリデーションに失敗すると前の画面に自動的にリダイレクトされます。
また「withInput()」や「withErrors()」もLaravelの方でコールしてくれますので、
前画面の方でバリデートエラーや入力内容を処理することができます!
次回は日本語化について説明していきます。
以上になります。

Laravel ToDoアプリ作成#04(日本語化対応)こんにちは、cocomaruです!
今回はLaravelで日本語化を行うための手順を紹介していきます。
この対応を行えば、バリデーショ...