2016-03-28 22 views
4

ben localhost:800/forum/add vurduğundalaravel 5 tek yol birden denetleyici yöntemi

Route::get('forum/{ques}', "[email protected]"); 

Şimdi ben [email protected] yerine [email protected] yönlendirilir olsun iyi

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

gibi rota şey istiyorum parametresi ile bir rota var

Biliyorum, bunu ForumQuestionsController gösteri yöntemiyle halledebilirim ve paraya göre farklı bir görünüm döndürürüm MTER. Ama ben bu şekilde istiyorum.

+0

güzel soru !! –

+1

bu http://stackoverflow.com/questions/36203020/laravel-single-route-point-to-different-controller-depending-on-slugs?noredirect=1#comment60056797_36203020 –

cevap

1

İlk

Route::get('forum/{ques}', "[email protected]"); 

Başka Yöntem şu Sonra bu bir

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

vermek

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

(Normal İfade Kısıtlamaları kullanarak) otomatik olarak git show yöntemi, aksi halde

+0

Sadece birincisi, {ques} parametresi de kapanmanın çalışmayacağı bir dize olduğu için kullanışlıdır. Ama aynı zamanda ilk olarak farklı rotada bu iki rota olsaydı ne yapmalıyım? – jovanpreet

1

Sorunu çözmek için rotaların sırasını ayarlayabilirsiniz.

show yerine önce add yerleştirin ve daha sonra laravel ilk maçı rota olarak kullanacaktır. ques bir sayı olacak ise

Route::get('forum/add', ['middleware' => 'auth:student', 'uses' => "[email protected]"]); 
Route::get('forum/{ques}', "[email protected]"); 
+0

adresine bakın. farklı 'Route :: group()' – jovanpreet

+0

@jovanpreet '' '{ques}' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' yolunu kullanabilmektesiniz ('ques', '[0-9] +') '' '' '' {ques} '' türünü sınırlamak. – KIDJourney

+0

Hayır, bir sayı değil – jovanpreet

0

yöntemini ekleyin. {ques} parametrenizin düzgün şekilde alınmadığını düşünüyorum. Bu deneyebilirsiniz:

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

gösteri yönteminde herhangi bir parametreyi kullanırsanız parametreleri ekleyin: böyle .....

public function show($ques){ 
}