2015-09-09 73 views
0

我想重定向以查看是否未滿足某些條件。校驗碼:在陣列袋中設置自定義錯誤消息

if($request->get('files') == 'yes' && $request->file('file_name') == null){ 
       return Redirect::to('brief/'.$id."/edit") 
       ->withErrors('errors',"Mention file") 
       ->withInput(); 
      } 

它打印數組:

Illuminate\Support\ViewErrorBag {#239 
    #bags: array:1 [ 
    "Mention file" => Illuminate\Support\MessageBag {#240 
     #messages: array:1 [ 
     0 => array:1 [ 
      0 => "errors" 
     ] 
     ] 
     #format: ":message" 
    } 
    ] 

在觀看結束我做:

@if (count($errors) > 0) 
       <div style="margin-top: 10%;" class="alert alert-danger"> 
        <ul> 
         @foreach ($errors->all() as $error) 
          <li>{{ $error }}</li> 
         @endforeach 
        </ul> 
       </div> 
      @endif 

它不打印消息提到文件

+0

待辦事項你有一個像'Validator :: make($ inputs,$ rules)'這樣的代碼? – aldrin27

+0

@ aldrin27是的,我有,但因爲這段代碼不是主驗證器的一部分,所以我將它單獨重定向。 – Volatil3

+0

我可以看到你如何驗證你的數據? – aldrin27

回答

1

無論你傳遞一個字符串->withErrors,或者通過用鑰匙 「錯誤」 使用->with數組:

if($request->get('files') == 'yes' && $request->file('file_name') == null){ 
      return Redirect::to('brief/'.$id."/edit") 
      ->withErrors("Mention file") 
      ->withInput(); 
     } 

if($request->get('files') == 'yes' && $request->file('file_name') == null){ 
      return Redirect::to('brief/'.$id."/edit") 
      ->with(["errors" => "Mention file"]) 
      ->withInput(); 
     } 
0

好的,我發現了這個問題。

從文件:

您可以使用withErrors方法閃爍的錯誤信息到 會話。當使用這種方法時,$錯誤變量將 自動與重定向後,您的意見共享,

所以->withErrors('errors',"Mention file")實際上是轉換成$errors一個字符串搞亂的東西了。做簡單->withErrors("Mention file")只是在ErrorBag添加消息。所以,正確的代碼應該是:

if($request->get('files') == 'yes' && $request->file('file_name') == null){ 
       return Redirect::to('brief/'.$id."/edit") 
       ->withErrors("Mention file") 
       ->withInput(); 
      }