Search code examples
laravelvalidationrequest

How to access request parameter in validation's after function?


I want to access $request parameters in after method.

But I got this message below:

Undefined variable: request

My Controller's Code is:

use Validator;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\DTag;

class TagController extends Controller {

    public function setting(Request $request) {

        $validator = Validator::make($request->all(), [
            'd_page_id' => ['required', 'numeric'],
            'name' => ['required', 'max:40'],
        ]);

        $validator->after(function ($validator) {
            $name = $request->get('name');
        });

        if ($validator->fails()) {
            return redirect("tag/create/{$request->input('d_page_id')}")->withErrors($validator)->withInput();
        }

How to access $request parameters?

Laravel version: 5.7.19

Thank you!


Solution

  • Change your code like this,

    $validator->after(function ($validator) use($request) {
            $name = $request->get('name');
        });
    

    You have to pass $request variable through after function so that you can use it inside after function.

    I hope you understand.