php - validate - laravel validator extend



오류 메시지가 있는지 확인하고 laravel에 오류 메시지가 모두 표시되는지 확인하십시오. (2)

한 번에 모든 오류 메시지를 표시하는 laravel에서보기에서 다음 코드를 사용합니다.

<?php 
 $something = $errors->all(); 
 if(!empty($something)): 
?>

<div class = "alert alert-error">                      
  @foreach ($errors->all('<p>:message</p>') as $input_error)
    {{ $input_error }}
  @endforeach 
</div> 

<?php endif; ?>

그러나 if 조건에서 $something 대신 $errors->all() 을 사용하려고하면 오류가 표시됩니다.

쓰기 컨텍스트에서 메서드 반환 값을 사용할 수 없습니다.

위의 코드는 잘 작동하지만 오류 메시지가 있는지 확인한 다음 표시하는 것이 더 좋은 방법 일 수 있다고 생각합니다.


Answer #1

내 컨트롤러에서 다음 코드를 사용하여 유효성 검사 오류를 내보기로 전달합니다.

return Redirect::to('page')
    ->withErrors($validator);

그런 다음, 내 생각에 다음 코드를 사용하여 오류가 있는지 확인할 수 있습니다.

@if($errors->any())
<div id="error-box">
    <!-- Display errors here -->
</div>
@endif

if($errors->all()) 사용할 수도 있습니다.

Laravel (v4) 문서 :

유효성 검사가 실패하면 Validator 인스턴스를 withErrors 메서드를 사용하여 리디렉션에 전달합니다. 이 방법은 오류 메시지를 다음 요청에서 사용할 수 있도록 세션에 플래시합니다 ... [$ n] $ 변수는 모든 요청에 ​​대해 항상 모든 뷰에서 사용할 수 있으므로 $ errors 변수는 항상 정의되며 안전하게 사용할 수 있습니다.


Answer #2

예, 빈 함수 매개 변수로 어떤 메소드도 사용할 수 없기 때문입니다. PHP 워드 프로세서에서 :

empty ()는 변수 검사만으로는 구문 분석 오류가 발생합니다. 즉, 다음은 작동하지 않습니다 : empty (trim ($ name)). 대신 trim ($ name) == false를 사용하십시오.

$ 오류는 어떤 수업입니까? 자신의 클래스라면 'isEmpty ()'와 같은 메소드를 구현 한 다음 if 문에서 사용할 수 있습니다.

if ($errors->isEmpty()) { ...




laravel