0

如果我去mysite.test/admin/有时它会给我一个 404 错误。我不明白为什么。

这是我的代码:

路线

/** Admin Routes */
Route::group(array('prefix' => 'admin'), function()
{
    Route::get('/', 'Admin\PagesController@home');
});
/** User Routes */
// Pages
Route::get('/', 'PagesController@home');
Route::get('/test', 'PagesController@test');

控制器\管理员\页面控制器

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class PagesController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
        $this->middleware('admin');
    }
    public function home()
    {
        dd('admin page');
    }

    public function test()
    {
        return view('mobile/test');
    }
}

控制器\页面控制器

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class PagesController extends Controller
{
    public function home()
    {
        $venues = Venue::all();

        return view('mobile/index', [
            'venues' => $venues,
            'page_title' => 'Home'
        ]);
    }

    public function test()
    {
        return view('mobile/test');
    }
}

中间件称为 Admin

namespace App\Http\Middleware;

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

class Admin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if ( Auth::check() && Auth::user()->isOwner == 1) {
            return $next($request);
        }

        \Session::flash('message', 'You are not an Admin');
        \Session::flash('alert-class', 'static-notification-red');
        return redirect('/');
    }
}

如果我在收到 404 错误时刷新,则页面可以正常工作。我想我在中间件上做错了,但我不知道是什么。


编辑

当我决定清除缓存时,错误似乎消失了:

php artisan cache:clear
php artisan route:clear
php artisan view:clear
php artisan config:clear

如果有人明白为什么会这样,请给出解释。如果错误不再出现,我将继续对其进行测试并关闭此问题。

4

0 回答 0