2016-02-07 230 views
0

我使用Laravel 5.2,並有一些麻煩與用戶的登錄:Laravel 5.2用戶的登錄

$email = $request->input('email'); 
$password = $request->input('password'); 

if (Auth::attempt(['email' => $email, 'password' => $password])) { 
    return redirect()->intended('admin/dashboard'); 
} 

問題: 下面的代碼返回當前用戶的電子郵件:

if (Auth::attempt(['email' => $email, 'password' => $password])) { 
    return Auth::user()->email; 
} 

而是在重定向的管理刀片模板中使用:Auth :: user() - > email我得到一個「錯誤異常」 - 嘗試獲取非對象的屬性。 Auth :: check()方法返回false。

我只有內部

Route::group(['middleware' => ['web']], function() { 
    // 
}); 

路線地方有訪問會話的文檔中讀取。所以,我把管理員/儀表盤路線這條路線組

Route::group(['middleware' => ['web']], function() { 
    Route::get('admin/dashboard', '[email protected]'); 
}); 

現在我得到以下誤差範圍內:Container.php行702:「100」達到最大值函數嵌套層次,中止!任何想法爲什麼發生這種情況 謝謝

+0

一個問題,因爲一個循環的這是可能的。您的路線說/管理員/儀表板轉到您的管理控制器的索引方法。但是,在您的索引方法中(我認爲)您正在嘗試對用戶進行身份驗證,如果成功,您將它們重定向到管理員/儀表板 - 並且流程繼續進行。 – Tom

回答

0

這種情況正在發生的xdebug.To解決去你的php.ini文件,並把此行

xdebug.max_nesting_level = 200 

使嵌套級別超過100或任何你想要的匿名嵌套層次want.If使用

xdebug.max_nesting_level = -1 
+0

當我添加xdebug.max_nesting_level = 200或xdebug.max_nesting_level = -1時,沒有任何反應。任何想法爲什麼?我已經恢復了鍛鍊。謝謝 – Steve

0

你不需要

Route::group(['middleware' => ['web']], function() { 
    // 
}); 

所有航線在laravel 5.2裏面進入web中間件; 看到這個Q? : Laravel 5.2 routes with web midellware


永遠不會改變xdebug.max_nesting_level 如果nesting_level達到100套料,告訴你有一個與midellware的使用或類似的東西