【发布时间】:2017-01-26 10:26:30
【问题描述】:
当我在命令上使用 make:auth 创建简单的授权页面时,我可以登录并注册成功,但是当我尝试点击 logout 时出现错误,我使用了最新的 upadte laravel 5.2,这是我的 @987654322 @:
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Validator;
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $redirectTo = '/home';
public function __construct()
{
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
//@formatter:off
'username' => 'required|max:255',
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
//@formatter:on
]);
}
public function getLogout()
{
auth()->logout();
return redirect()->route('/home');
}
protected function create(array $data)
{
return User::create([
//@formatter:off
'username' => $data['username'],
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
//@formatter:on
]);
}
}
我阅读了越来越多有此问题的主题,但解决方案无法解决我添加的问题
Route::get('auth/logout', 'Auth\AuthController@logout');
在路线上或在constructor上使用middleware:
$this->middleware($this->guestMiddleware(), ['except' => 'logout']);
我在布局上注销的链接是:
<li><a href="{{ url('/auth/logout') }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
我得到这个错误:
NotFoundHttpException in compiled.php line 8912:
全栈错误:
in compiled.php line 8912
at RouteCollection->match(object(Request)) in compiled.php line 8264
at Router->findRoute(object(Request)) in compiled.php line 8212
at Router->dispatchToRoute(object(Request)) in compiled.php line 8207
at Router->dispatch(object(Request)) in compiled.php line 2419
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in compiled.php line 3286
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in compiled.php line 9963
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in compiled.php line 9948
at Pipeline->then(object(Closure)) in compiled.php line 2366
at Kernel->sendRequestThroughRouter(object(Request)) in compiled.php line 2350
at Kernel->handle(object(Request)) in index.php line 54
【问题讨论】:
-
应该是:
Route::get('auth/logout', 'Auth\AuthController@getLogout'); -
@felipsmartins 是的,但它不起作用,我得到错误
标签: laravel laravel-5 laravel-5.2 laravel-routing