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()