2016-09-18 2 views
1

когда я использую make: auth on command для создания простых страниц авторизации, я могу loggin и зарегистрироваться успешно, но когда я пытаюсь нажать на logout, я получаю ошибку, я использовал последнюю версию laravel 5.2 и это мой AuthController:Laravel 5.2 logout() не работает

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\[email protected]'); 

на маршрутах или использовать middleware на constructor:

$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 
+0

Предполагается, что это: 'Route :: get ('auth/logout', 'Auth \ AuthController @ getLogout');' – felipsmartins

+0

@felipsmartins да, но он не работает, и я получаю ошибку –

ответ

0

Кажется, ваш маршруты - это кеши, поэтому вы должны попробовать:

php artisan route:clear 

очистить кэш маршрутов

или

php artisan route:cache 

очистить кэш и genarate новых маршрутов кэша

0

Попробуйте для выхода из системы

Session::flush(); 
Auth::logout(); 
Cache::flush(); 
return Redirect::to('/home'); 

Надеется, что это будет решать ваш проблема.

+0

. Это полезно для вас ? – Nil

Смежные вопросы