4

I have a route with parameter

Route::get('forum/{ques}', "ForumQuestionsController@show");

Now I want a route something like

Route::get('forum/add', ['middleware' => 'auth:student', 'uses' => "ForumQuestionsController@add"]);

well when I hit localhost:800/forum/add I get routed to ForumQuestionsController@show instead of ForumQuestionsController@add

Well I know I can handle this in show method of ForumQuestionsController and return a different view based on the paramter. But I want it in this way.

2

3 Answers 3

1

First give this one

Route::get('forum/add', ['middleware' => 'auth:student', 'uses' => "ForumQuestionsController@add"]);

Then the following

Route::get('forum/{ques}', "ForumQuestionsController@show");

Another Method (using Regular Expression Constraints)

Route::pattern('ques', '[0-9]+');
Route::get('forum/{ques}', "ForumQuestionsController@show");

If ques is a number it will automatically go to the show method, otherwise add method

Sign up to request clarification or add additional context in comments.

1 Comment

Only first is useful as the {ques} parameter is also a string where closure will not work. But also in first what if I had these two routes in different Route::group()
1

You can adjust the order of routes to solve the problem.

Place add before show , and then laravel will use the first match as route .

Route::get('forum/add', ['middleware' => 'auth:student', 'uses' => "ForumQuestionsController@add"]);
Route::get('forum/{ques}', "ForumQuestionsController@show");

3 Comments

what if i had these two routes in different Route::group()
@jovanpreet if the {ques} is number only , you could use Route::pattern('ques', '[0-9]+'); to limit the type of {ques} .
Well then maybe you should change the order of group , or rename the route.
0

I think your {ques} parameter do not get properly. You can try this:

Route::get('forum/show/{ques}', "ForumQuestionsController@show");
Route::get('forum/add', ['middleware' => 'auth:student', 'uses' => "ForumQuestionsController@add"]);

If you use any parameters in show method add parameters:

public function show($ques){
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.