Abdallah Sakre
Abdallah Sakre

Reputation: 99

Missing parameters that are passed to route using return redirect - Laravel

Please confirm if the below steps are correct (Specially the return redirect() part)

Route "Dashboard2" is expecting 2 variables as follows to open the Dashboard view through the getDashboard function :

Route::get('/dashboard2/{wordsRowB}/{wordsRowId}', [    
    'uses' => 'DashController@getDashboard',
    'as' => 'dashboard2',
    'middleware' => 'auth'

]);

So I passed to it these 2 variables as follows :

View Code :

<a href="{{ route('post.pin', [                    
                          'wordsRowId' => $wordsRowId,
                          'wordsRowB' => $wordsRowB
                         ]) }}">Test</a> 

Controller Code :

public function postPin($wordsRowId,$wordsRowB)
    {

      return redirect()->route('dashboard2')
      ->with(['wordsRowId' => $wordsRowId])
      ->with(['wordsRowB' => $wordsRowB]);

I'm getting this error : (You'll find 2 more variables in the error, that I removed from the above code for clarity)

Missing required parameters for [Route: dashboard2] [URI: dashboard2/{wordsRowB}/{wordsRowId}].
in UrlGenerationException.php line 17
at UrlGenerationException::forMissingParameters(object(Route)) in UrlGenerator.php line 332
at UrlGenerator->toRoute(object(Route), array(), true) in UrlGenerator.php line 304
at UrlGenerator->route('dashboard2', array()) in Redirector.php line 157
at Redirector->route('dashboard2') in DashController.php line 323
at DashController->postPin('62', '1', '39', 'kokowawa')
at call_user_func_array(array(object(DashController), 'postPin'), array('post_id' => '62', 'user_id' => '1', 'wordsRowB' => '39', 'wordsRowId' => 'kokowawa')) in Controller.php line 80

Please note that using var_dump shows that the variables are passed to the postPin function, but I don't know how to check if they were successfully redirected to the route ?

Upvotes: 0

Views: 2113

Answers (2)

Excellent Lawrence
Excellent Lawrence

Reputation: 1104

Define your routes like this

redirect()->route('dashboard2', [$wordsRowId, $wordsRowB]);

Upvotes: 0

Rick Bolton
Rick Bolton

Reputation: 169

I think that your variables need to be within the route() call, try return:

redirect()->route('dashboard2', [$wordsRowId, $wordsRowB]);

Upvotes: 1

Related Questions