컨트롤러에서 리다이렉트된 후 Larabel에 오류 메시지 표시
Laravel에서 리다이렉트되고 있는 뷰에 검증 메시지를 표시하려면 어떻게 해야 합니까?
컨트롤러에서의 내 기능은 다음과 같습니다.
public function registeruser()
{
$firstname = Input::get('firstname');
$lastname = Input::get('lastname');
$data = Input::except(array('_token')) ;
$rule = array(
'firstname' => 'required',
'lastname' => 'required',
) ;
$validator = Validator::make($data,$rule);
if ($validator->fails())
{
$messages = $validator->messages();
return Redirect::to('/')->with('message', 'Register Failed');
}
else
{
DB::insert('insert into user (firstname, lastname) values (?, ?)',
array($firstname, $lastname));
return Redirect::to('/')->with('message', 'Register Success');
}
}
아래 주어진 코드가 잘못된 시도인 것은 알지만, 어떻게 수정하고 부족한 점은 무엇입니까?
@if($errors->has())
@foreach ($errors->all() as $error)
<div>{{ $error }}</div>
@endforeach
@endif
업데이트 : 특정 필드 근처에 오류 메시지를 표시하려면 어떻게 해야 합니다.
라라벨 4
검증에 실패하면 검증 오류와 함께 반환됩니다.
if($validator->fails()) {
return Redirect::back()->withErrors($validator);
}
다음 명령을 사용하여 뷰에서 오류를 확인할 수 있습니다.
@if($errors->any())
{{ implode('', $errors->all('<div>:message</div>')) }}
@endif
갱신하다
각 필드 아래에 오류를 표시하려면 다음과 같이 하십시오.
<input type="text" name="firstname">
@if($errors->has('firstname'))
<div class="error">{{ $errors->first('firstname') }}</div>
@endif
css를 사용하여 디스플레이 스타일을 개선합니다.
이 문서를 참조해 주세요.
업데이트 2
모든 오류를 한 번에 표시하려면
@if($errors->any())
{!! implode('', $errors->all('<div>:message</div>')) !!}
@endif
각 필드 아래에 오류를 표시합니다.
@error('firstname')
<div class="error">{{ $message }}</div>
@enderror
같은 컨트롤러에서 뷰를 로드하려면 다음 절차를 따릅니다.
if ($validator->fails()) {
return self::index($request)->withErrors($validator->errors());
}
또한 모든 오류를 빠르게 표시하지만 제어 능력을 향상시키려면 다음 절차를 수행합니다.
@if ($errors->any())
@foreach ($errors->all() as $error)
<div>{{$error}}</div>
@endforeach
@endif
@if ($errors->has('category'))
<span class="error">{{ $errors->first('category') }}</span>
@endif
보기 좋게 하려면 작은 부트스트랩 도움말을 사용할 수 있습니다.
@if(count($errors) > 0 )
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<ul class="p-0 m-0" style="list-style: none;">
@foreach($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</ul>
</div>
@endif
새로운 Laravel 블레이드 오류 지시가 Laravel 5.8.13에 도착합니다.
// Before
@if ($errors->has('email'))
<span>{{ $errors->first('email') }}</span>
@endif
// After:
@error('email')
<span>{{ $message }}</span>
@enderror
다음과 같이 html 태그를 사용하여 인쇄할 수 있습니다.
@if($errors->any())
{!! implode('', $errors->all('<div>:message</div>')) !!}
@endif
$validator = Validator::make($request->all(), [ 'email' => 'required|email', 'password' => 'required', ]);
if ($validator->fails()) { return $validator->errors(); }
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
{!! Form::text('firstname', null !!}
@if($errors->has('firstname'))
{{ $errors->first('firstname') }}
@endif
이 방법 또한 작업을 수행하는 데 좋은 방법입니다.
@if($errors->any())
{!! implode('', $errors->all('<div class="alert alert-danger">:message</div>')) !!}
@endif
태그는 요건에 따라 포맷할 수 있습니다.
아래 입력 필드에는 추가 보기가 포함됩니다.
@include('input-errors', ['inputName' => 'inputName']) #For your case it would be 'email'
input-blade.blade 입니다.php
@foreach ($errors->get($inputName) as $message)
<span class="input-error">{{ $message }}</span>
@endforeach
CSS - 메시지에 빨간색이 추가됩니다.
.input-error {
color: #ff5555;
}
토스터를 사용하는 경우 다음을 사용하여 부동 메시지 오류를 표시합니다.
@if($errors->any())
<script type="text/javascript">
toastr.error({{ implode(' ', $errors->all()) }});
</script>
@endif
Larabel 8 및 Bootstrap 5도 사용하는 경우 다음과 같은 경고와 함께 오류를 깔끔하게 표시할 수 있습니다.
@if($errors->any())
<div class="alert alert-danger alert-dismissible">
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
<strong>
{!! implode('<br/>', $errors->all('<span>:message</span>')) !!}
</strong>
</div>
@endif
커널에 있는 모든 것을 이동합니다.php 위의 방법만 통하지 않으면 커널 내의 모든 행을 이동해야 한다는 것을 기억하십시오.php는 위의 솔루션과 더불어
먼저 파일에 있는 그대로 표시해 보겠습니다.
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
],
'api' => [
'throttle:60,1',
],
];
이제 당신이 해야 할 일은
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
],
'api' => [
'throttle:60,1',
],
];
즉,
언급URL : https://stackoverflow.com/questions/26732821/displaying-the-error-messages-in-laravel-after-being-redirected-from-controller
'programing' 카테고리의 다른 글
Java에서 계수를 계산하는 방법이 있나요? (0) | 2022.12.29 |
---|---|
vuex 저장소를 참조할 때 Vue.js 인스턴스 데이터가 누락됨 (0) | 2022.12.29 |
MySQL 쿼리에서 정규식을 수행하는 방법 (0) | 2022.12.29 |
왜 이렇게 인쇄가 느리죠?더 빨리 할 수 있나요? (0) | 2022.12.29 |
PHP 클래스에 정의된 CONST를 가져올 수 있습니까? (0) | 2022.12.09 |