2017-07-29 63 views
0

我有一個奇怪的問題。 事情是,我試圖顯示錯誤,如果驗證失敗。當我再補充一點檢查是否存在任何錯誤,它拋出我這個laravel自定義錯誤顯示

調用一個成員函數的函數有()對字符串 在1a9e38a37f43696e36d945eadb85a60fed28183b.php(第28行)

這是這樣的:

@if($errors->has('credentials') > 0) 
    <p class="error">{{ $errors->first('credentials') }}</p> 
    @endif 

這是我如何處理驗證

public function login(Request $request) 
{ 
    $this->validate($request, [ 
     'credentials' => 'required', 
     'password' => 'required', 
    ]); 

    $user_detail = $request->credentials; 
    $password = $request->password; 

    if(Sentinel::authenticate(array('login' => $user_detail, 'password' => $password))) 
    { 
     return redirect()->route('site.index'); 
    } 
    else 
    { 
     return back()->with('errors', 'test'); 
    } 
} 
+0

'errors'具有價值'test'什麼,你有什麼期待? –

+0

那又如何?如果驗證通過且驗證不通過,則應該返回該值。我刪除了整條線,但我仍然遇到同樣的問題。 – Cadilab

回答

0

使用

return back()->with('errors', 'test'); 

創建變量$errors字符串"test"

但是has(和first)也是collection的方法。所以,你需要有$errors爲集合:

return back()->with('errors', collect(['credentials' => 'Error text goes here'])); 
+0

試過了,已經一樣了。 FatalErrorException 調用成員函數has()字符串 在1a9e38a37f43696e36d945eadb85a60fed28183b.php(第28行)這是我提供的第一個代碼片段。 – Cadilab

+0

您的代碼有錯誤。我將'errors'創建爲__collection__,所以會出現關於字符串的__no__錯誤。 –

0

有關使用

return back()->withErrors('test'); 
相關問題