Laravel 5 类管理员不存在
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/29363811/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Laravel 5 Class admin does not exist
提问by Djordje Vanjek
Having problem with Laravel 5 and this admin class, the thing is that everything worked on localhost and now after I deployed it on server (made ton of fixes but didn't touched this) it doesn't work.
Laravel 5 和这个管理类有问题,问题是一切都在 localhost 上工作,现在在我将它部署到服务器上之后(做了大量修复但没有触及这个)它不起作用。
The Error is coming out when I go to the page '/moderate' which should be visible just by the admin.
当我转到页面“ /moderate”时出现错误,该页面应该仅由管理员可见。
Error:
错误:
in Container.php line 776
at ReflectionClass->__construct('admin') in Container.php line 776
at Container->build('admin', array()) in Container.php line 656
at Container->make('admin', array()) in Application.php line 572
at Application->make('admin') in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Authenticate.php line 47
at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Router.php line 690
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 660
at Router->dispatchToRoute(object(Request)) in Router.php line 618
at Router->dispatch(object(Request)) in Kernel.php line 157
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 141
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 43
at VerifyCsrfToken->handle(object(Request), object(Closure)) in VerifyCsrfToken.php line 17
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 55
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 36
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 40
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 125
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 101
at Pipeline->then(object(Closure)) in Kernel.php line 108
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 83
at Kernel->handle(object(Request)) in index.php line 53
AdminController location(App/Http/Controllers/):
AdminController 位置(App/Http/Controllers/):
<?php namespace App\Http\Controllers;
use App\Post;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdminController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
$posts = Post::oldest()->where('status', '=', '0')->get();
return view('admin.index', compact('posts'));
}
/**
* Show the form for creating a new resource.
*
* @return Response
*/
public function trash()
{
$posts = Post::oldest()->where('status', '=', '2')->get();
return view('admin.trash', compact('posts'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Response
*/
public function changeStatus($id, $status)
{
$post = Post::findOrFail($id);
if($post->status != $status){
$post->status = $status;
$post->save();
}
return redirect('/moderate');
}
}
Routes:
路线:
// Admin only
Route::group(['middleware' => ['auth', 'admin']], function()
{
Route::get('/moderate', 'AdminController@index');
Route::get('/posts/{id}/status/{status}', 'AdminController@changeStatus');
Route::get('/trash', 'AdminController@trash');
});
回答by Djordje Vanjek
Fixed!
固定的!
Forgot to sync Kernel.php
忘记同步 Kernel.php
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
// This was missing
'admin' => 'App\Http\Middleware\VerifyAdmin',
];
回答by Umut Yerebakmaz
Additional info
附加信息
app/Htpp/Kernel.php not console/Kernel.php
app/Htpp/Kernel.php 不是控制台/Kernel.php