2013-09-05 21 views
6

Her zamanki CRUD yöntemlerine sahip olan bu blog kaynağım var. (Dizin oluşturma, kaydetme, gösterme, düzenleme, güncelleme, yok etme).Laravel 4 kimlik doğrulaması. Bir kaynağın bazı işlevlerine erişimi kısıtlayın, ancak hepsi değil

benim routes.php aşağıdaki rota:

Route::resource('blog', 'PostsController'); 

ama indeksi ve gösteri ama hepsi sınırlamak istiyor. yüzden endeksi için gayet

Route::get('blog', '[email protected]'); 
Route::group(array('before' => 'auth'), function() 
{ 
    Route::resource('blog', 'PostsController'); 
}); 

var ama bilmiyorum nasıl rota gösteri yöntemini nasıl? Ya da başka bir yol var mı? Kaynağı yönlendirmek yerine, her URI'yi tek tek yönlendirmeli ve kısıtlı erişim yolumda kısıtlamak istediklerimi yerleştirmeliyim?

Alkış

cevap

12

laravel Eğer $this->beforeFilter kullanarak kontrolörleri __construct yönteminde filtreleri belirtmenizi sağlayan bir özellik vardır. Bu işlev, istisnalar sağlamanıza izin veren ikinci bir argüman alır (veya filtreyi yalnızca belirli yöntemlerde etkinleştirir). Orijinal yolları dosyayı kullanmayı deneyin ve bu gibi denetleyici kurmak: Laravel documentation yılında

class PostsController extends BaseController { 

    function __construct() { 
     // ... 
     $this->beforeFilter('auth', array('except' => array('index', 'show'))); 
     // ... 
    } 

    // ... 

Bkz Kontrolör filtreler. Tamamen iyi belgelenmiş değil, aynı zamanda Laravel'in bağırsaklarına here'dan daha derin bir yolculuğa başlayabilirsiniz. Laravel 5'te

+0

Teşekkür iyi çalışma geçerli bir seçenek –

+1

benziyor, şerefe bunun için, benim daha daha temiz! –

+0

Tam olarak aradığım şey. Laravel muhteşem. –

0

Bunun yerine böyle bir katman işlevi kullanın:

$this->middleware('auth', array('except' => array('index', 'show'))); 
İlgili konular