Laravel 路由列表致命错误
Laravel Route List Fatal Throwable Error
我可以在控制台中列出我的所有路线,但是当我将其添加到我的 route.php 时,出现致命错误
Route::group(['middleware' => 'is_admin', 'prefix' => 'admin', 'as'=>'admin.'], function () {
Route::get('/', ['as'=>'dashboard', 'uses'=>'AdminController@dashboard']);
Route::resource('questions','QuestionController');
});
这是我的Middleware/IsAdmin。php
namespace App\Http\Middleware;
use Closure;
class IsAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(auth()->user()->isAdmin()) {
return $next($request);
}
return redirect('home');
}
}
更新 2
即使我只得到这个,它仍然错误。
Route::group(['middleware' => 'is_admin', 'prefix' => 'admin', 'as'=>'admin.'], function () {
Route::get('/', ['as'=>'dashboard', 'uses'=>'AdminController@dashboard']);
});
更新 3 - AdminController
...
class AdminController extends Controller
{
private $page_name;
public function __construct()
{
$this->middleware('auth');
//when I comment this below, it works.
$this->page_name = ucfirst(substr(\Request::route()->getName(), strpos(\Request::route()->getName(), "/") + 1));
}
...
这里的问题是你有:
$this->page_name = ucfirst(substr(\Request::route()->getName(), strpos(\Request::route()->getName(), "/") + 1));
在控制器构造函数中(您已经注意到了)。
当你使用控制台时,你没有任何路由,所以它不会工作。
如果你真的需要这一行,你可以用附加条件包装它:
if (!app()->runningInConsole())
{
$this->page_name = ucfirst(substr(\Request::route()->getName(), strpos(\Request::route()->getName(), "/") + 1));
}
但您也可以将此行提取到单独的方法中,并在需要时在其他方法中使用它。
我可以在控制台中列出我的所有路线,但是当我将其添加到我的 route.php 时,出现致命错误
Route::group(['middleware' => 'is_admin', 'prefix' => 'admin', 'as'=>'admin.'], function () {
Route::get('/', ['as'=>'dashboard', 'uses'=>'AdminController@dashboard']);
Route::resource('questions','QuestionController');
});
这是我的Middleware/IsAdmin。php
namespace App\Http\Middleware;
use Closure;
class IsAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(auth()->user()->isAdmin()) {
return $next($request);
}
return redirect('home');
}
}
更新 2 即使我只得到这个,它仍然错误。
Route::group(['middleware' => 'is_admin', 'prefix' => 'admin', 'as'=>'admin.'], function () {
Route::get('/', ['as'=>'dashboard', 'uses'=>'AdminController@dashboard']);
});
更新 3 - AdminController
...
class AdminController extends Controller
{
private $page_name;
public function __construct()
{
$this->middleware('auth');
//when I comment this below, it works.
$this->page_name = ucfirst(substr(\Request::route()->getName(), strpos(\Request::route()->getName(), "/") + 1));
}
...
这里的问题是你有:
$this->page_name = ucfirst(substr(\Request::route()->getName(), strpos(\Request::route()->getName(), "/") + 1));
在控制器构造函数中(您已经注意到了)。
当你使用控制台时,你没有任何路由,所以它不会工作。
如果你真的需要这一行,你可以用附加条件包装它:
if (!app()->runningInConsole())
{
$this->page_name = ucfirst(substr(\Request::route()->getName(), strpos(\Request::route()->getName(), "/") + 1));
}
但您也可以将此行提取到单独的方法中,并在需要时在其他方法中使用它。