Если я перехожу к 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');
Контроллеры \ Admin \ PagesController
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');
}
}
Контроллеры \ PagesController
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
Если кто-то понимает, почему это произошло, объясните, пожалуйста.Я продолжу тестировать его в течение некоторого времени и закрою этот вопрос, если ошибка не появится снова.