2014-10-28 20 views
5

bir örtük denetleyici içinde yöntemlerde URI parametrelerini almak nasıl? İlklaravel 4 - URI Parametreleri Örtülü Kontrolörleri

, bir baz yol tanımlar: Sonra

Route::controller('users', 'UserController'); 

, içimde param1 ve param2 okuyabilir nasıl

class UserController extends BaseController { 

    public function getIndex() 
    { 
     // 
    } 

    public function postProfile() 
    { 
     // 
    } 

    public function anyLogin() 
    { 
     // 
    } 

} 

Ben http://myapp/users/{param1}/{param2} gibi URI'de aditional parametrelerini geçirmek istiyorsanız, saygı yöntemi? Bu örnekte, getIndex()

cevap

7

Eğer böyle controller içerisinde olması gerekir http://myapp/users/{param1}/{param2} gibi bir URL'ye sahip olmak isterseniz:

Route::get('users/{param1}/{param2}', '[email protected]'); 

ve erişim it:

class UserController extends BaseController { 

    public function getIndex($param1, $param2) 
    { 
     // 
    } 

} 

ama hey , bunun gibi bir şey de yapabilirsiniz, yollar aynı olacaktır:

ancak URL gibi bir şey olacaktır: Burada http://myapp/users?param1=value&param2=value

+1

Muhtemelen bu tek yoldur. Bu durumda, örtülü denetleyicilerinden de yararlanmak istiyorum, ancak bunu yapamıyoruz. Eğer başka biri daha iyi bir çözüm sunmazsa, sen de ponts'u alırsın. :) –

+1

hmm, birçok kişi örtük kontrolörleri okuyup (durumda yeni bir tane olacak) projenizin yeni geliştiriciler için tahmin edilmesi zor olduğunu söylüyor. Çoğu kişi (benim idol jeffrey yolum dahil), kaynak denetleyicisini veya denetleyicileri eklemenin normal yolunu önerir (ex Router :: post veya Route :: put). ama geliştiricilerin tercihi ve hepimizin farklı tercihleri ​​var :) – Ceeee

2

Albüm Görüntüleri vardır varsayalım, biz (albüm veri almak için bir albüm denetleyicisi istiyorum modeller arasındaki hiyerarşi (yuvalanmış yönlendirme) gibi bir dizin oluşturma yoludur) ve bir görüntü kontrolörü (görüntü verisini almak için).

Route::group(array('before' => 'auth', 'prefix' => 'album/{album_id}'), function() 
{ 
    // urls can look like /album/145/image/* where * is implicit in image controller. 
    Route::controller('image', 'ImageController'); 

}); 

Route::group(array('before' => 'auth'), function() 
{ 
    // urls can look like /album/* where * is implicit in album controller. 
    Route::controller('album', 'AlbumController'); 

});