Php Laravel 5.4中的路线作用方法

Php Laravel 5.4中的路线作用方法,php,laravel-5,laravel-routing,laravel-middleware,Php,Laravel 5,Laravel Routing,Laravel Middleware,我正试着在路线上做一个行动前检查。因此,我设置了一个中间件,如下所示: <?php namespace App\Http\Middleware; use Closure; use Route; class PermissionMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @ret

我正试着在路线上做一个行动前检查。因此,我设置了一个中间件,如下所示:

<?php

namespace App\Http\Middleware;

use Closure;
use Route;

class PermissionMiddleware
{
/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Closure  $next
 * @return mixed
 */
public function handle($request, Closure $next)
{
   list(, $action) = explode('@', Route::getCurrentRoute()->getActionName());

    return $next($request);
}
}
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Blog;
use Image;
use File;
use Route;

class BlogController extends Controller
{

public function __construct()
{
    $this->middleware(['auth','permission']);
}


public function create()
{       
   .......
   .......
}
Route::get('create/news',"BlogController@create");
但是,当我导航到路线时,它会显示一个错误,如下所示:

<?php

namespace App\Http\Middleware;

use Closure;
use Route;

class PermissionMiddleware
{
/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Closure  $next
 * @return mixed
 */
public function handle($request, Closure $next)
{
   list(, $action) = explode('@', Route::getCurrentRoute()->getActionName());

    return $next($request);
}
}
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Blog;
use Image;
use File;
use Route;

class BlogController extends Controller
{

public function __construct()
{
    $this->middleware(['auth','permission']);
}


public function create()
{       
   .......
   .......
}
Route::get('create/news',"BlogController@create");

例外情况如下:

对null上的成员函数getActionName()的FatalErrorException调用 在PermissionMiddleware.php中(第19行)


我试图解决此问题,但无济于事。

请再次阅读错误消息,您将发现问题所在

错误是:

FatalErrorException Call to a member function getActionName() on null in PermissionMiddleware.php (line 19)
在第19行,我想你有这个:

list(, $action) = explode('@', Route::getCurrentRoute()->getActionName());
这意味着错误来自这里:“Route::getCurrentRoute()->getActionName()

Route::getCurrentRoute()返回null。因此,从null调用方法“getActionName()

请检查方法“getCurrentRoute()”以解决此问题。
祝你好运。

请阅读-总结是,这不是向志愿者致辞的理想方式,可能会对获得答案产生反作用。请不要将此添加到您的问题中。是的。你是对的。getCurrentRoute()返回null,我不知道原因。知道为什么会这样吗?谢谢,但我以前确实看到过。但我要找的是routeAction()而不是routeName(),而你提到的那个链接更像是在讨论routeName()