2015-03-25 50 views
1

我正在使用Laravel4.1。我如何在Laravel4.1的filter.php中做DRY

我想在不同的過濾器和相同的對象相同的過程如下所示。

Route::filter('filter1', function(){ 
    $sameObject = // I want to fetch sameObject; 
    View::share('obj', $sameObject); 
}); 

Route::filter('filter2', function(){ 
    $sameObject = // I want to fetch sameObject; 
    if(isset($sameObject){ 
    return Redirect::to('home') 
    } 
}); 

有沒有什麼辦法讓DRY這個過程?

+0

if(View :: shared('obj'))''可能會訣竅,如果你確定第二個過濾器稍後運行。 – ceejayoz 2015-04-15 21:39:05

回答

1

嘗試使用會話,或配置(噱頭)方法:

Route::filter('filter1', function(){ 
    $sameObject = // I want to fetch sameObject; 
    Config::set('myObject',$sameObject); 
    View::share('obj', $sameObject); 
}); 

Route::filter('filter2', function(){ 
    $sameObject = Config::get('myObject'); 
    if(isset($sameObject){ 
    return Redirect::to('home') 
    } 

});