繁体   English   中英

无法将filter.php文件从laravel 4迁移到laravel 5

[英]Unable to migrate the filters.php file from laravel 4 to laravel 5

我只是继承了一个laravel应用程序,需要将其从4迁移到5。遵循了该指南之后,一切都很好,除了filters.php文件。

该指南说将它们移动到RouteServiceProvider的启动方法,并在使用middleware过滤器之前进行替换,但这是行不通的。 我是Laravel的新手,不确定一切如何运作。

这是我要迁移的过滤器之一:

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);
}
});

我该如何进行迁移?

通过使用该功能并制作中间件(例如下面的中间件)来找到解决方案。

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);
  }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM