2017-08-16 57 views
0

我使用Sentinel包進行laravel中的高級驗證。我可以正確註冊,但是當我要登錄時,這裏有一個錯誤 - 「響應內容必須是實現__toString(),」boolean「的字符串或對象。請任何人幫助我。響應內容必須是一個字符串或實現laravel中給出的__toString(),「布爾型」的對象5.4

這裏是我的路線吼叫:

Route::get('/login', '[email protected]'); 
Route::post('/login', '[email protected]'); 

這裏是我的控制器波紋管:

public function login(){ 
    return view('authentication.login'); 
} 

public function postLogin(Request $request){ 
    Sentinel::authenticate($request->all()); 
    return Sentinel::check(); 
} 

回答

1

這裏是關於laravel響應一件有趣的事情。從laravel控制器返回的結果是它試圖將該數組/對象轉換爲字符串。但是通過稱爲__toString()的PHP魔術方法可以將對象轉換爲字符串。

由於您沒有返回實施了__toString()方法的對象,因此您將收到此錯誤。

如果你真的想看到Sentinel::check()的輸出,那麼你可以使用dd(Sentinel::check())而不是返回它。如果你真的想要,甚至可以像['sentinelCheck' => Sentinel::check()]那樣返回它。

0

同樣的事情發生在我身上。修正發送數組作爲返回時的問題。

控制器

return ['status' => true, 'msg' => 'mesaj', 'data' => 'datalar']; 
相關問題