tohokuaikiのチラシの裏

技術的ネタとか。

LaravelのRequestを使ったForm ValidateにRequestクラス内共通の処理を使いたかった

つまり、Requestのメソッドを使いたかったんだけど、それはできないみたいなのでクロージャを使った。

<?php
class UserRequest extends FormRequest
{

    public function rules()
    {
        // 共通で処理するValidator
        $my_validate = function($attribute, $value, $fail){
            return $fail('no good');
        };

        $rules = [
            'name' => [
                'required',
                $my_validate,

こんな感じ。

requiredを満たした時、この$my_validateが走る。