Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

kapitan's avatar

How to return variable from Form Request to Controller

How can I return a variable from Form Requests (App\Http\Requests) to Controller (App\Http\Controllers)?

Please help and thank you!

0 likes
8 replies
topvillas's avatar

That doesn't make much sense. What are you actually trying to do?

kapitan's avatar

I am saving a record on function persist() on Form Requests.

My goal is to pass the generated id so that I can redirect the page on edit mode for the user. For some reason, the Controller cannot receive the id from Form Requests.

App\Http\Requests\MyFormRequests.php:

function persist()

{

$business = Business::create([ 'business_name' => $this['business_name'], 'nationality' => $this['nationality'] ]);

return $myid = $business->id;

}

App\Http\Controllers\MyControllers.php:

public function store(MyFormRequests $request)

{

$request->persist();

return redirect()->route('register.edit.get', $request->persist()->$myid);

}

Snapey's avatar
Snapey
Best Answer
Level 122

App\Http\Requests\MyFormRequests.php:


function persist()

{

    $business = Business::create([ 'business_name' => $this['business_name'], 'nationality' => $this['nationality'] ]);

return $business;

}

App\Http\Controllers\MyControllers.php:

public function store(MyFormRequests $request)

{

$business = $request->persist();

return redirect()->route('register.edit.get', $business);

}
kapitan's avatar

or if you know how to redirect the form inside the App\Http\Requests\MyFormRequests.php to my register.edit.get route name with the myid value on it.

topvillas's avatar

Handle the business logic in the controller and make your life easier.

Business logic really has no place in a form request.

Snapey's avatar

it's what I do most times... I persist the form data in the form request

saving models does not belong in controllers either

1 like
kapitan's avatar

thank you sir Snapey, im crying, love you dude!

Please or to participate in this conversation.