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