【Laravel】Controller でのバリデーションの追加

バリデーションルールでは表現できない複雑なバリデーションチェックを行いたい場合、独自のチェックを行い、エラーメッセージを追加することができる。

use Illuminate\Support\Facades\Validator;

class HomeController extends Controller
{
    public function sample(Request $request)
    {
        $validator = Validator::make($request->all(), []);

        if (条件) {
            $validator->errors()->add('name', 'error message');
        }

        if ($validator->errors()->count() > 0) {
            return back()->withInput()->withErrors($validator);
        }
    }
}