2016-07-21 7 views
0

laravelアプリケーションを継承したので、4から5に移行する必要があります。すべてのことは、filters.phpファイル以外のガイドに従ってください。filters.phpファイルをlaravel 4からlaravel 5に移行できません

ガイドでは、起動方法をRouteServiceProviderに移動し、フィルタの前にmiddlewareを置き換えても、動作しません。私はララベルには新しく、すべての仕組みがわからない。

これは私が移行しようとしていますフィルタのいずれかである:

Route::filter('campaign.edit', function($route) 
{ 
$campaign_id = $route->getParameter('id'); 
if (is_null(Namespace\Campaign::find($campaign_id))) { 
    if (Input::get('campaign_id')) { 
     $campaign_id = Input::get('campaign_id'); 
    } else if (Input::get('track_id')) { 
     $track_id = Input::get('track_id'); 
     $track = Namespace\Track::find($track_id); 
     $campaign_id = $track->campaign_id; 
    } else { 
     return; 
    } 
} 
if (false === Auth::user()->canEditCampaign($campaign_id)) { 
    return App::abort(403); 
} 
}); 

どのように私はこの作品の移行については行くことができますか?

答えて

0

このような機能を利用してミドルウェアを作成することで、以下のような解決策が見つかりました。

namespace App\Http\Middleware; 

use Closure; 
use NameSpace; 
use Input; 
use Illuminate\Support\Facades\Auth; 

class CampaignEdit 
{ 
public function handle($request, Closure $next) 
{ 
    $campaign_id = $request->route('id'); 
    if (is_null(NameSpace\Campaign::find($campaign_id))) { 
    if (Input::get('campaign_id')) { 
     $campaign_id = Input::get('campaign_id'); 
    } else if (Input::get('track_id')) { 
     $track_id = Input::get('track_id'); 
     $track = NameSpace\Track::find($track_id); 
     $campaign_id = $track->campaign_id; 
    } else { 
     return; 
    } 
    } 
    if (false === Auth::user()->canEditCampaign($campaign_id)) { 
    return App::abort(403); 
    } 


    return $next($request); 
    } 

} 
関連する問題