>백엔드 개발 >PHP 튜토리얼 >Laravel 5 기본 사항(11) - 양식 유효성 검사

Laravel 5 기본 사항(11) - 양식 유효성 검사

WBOY
WBOY원래의
2016-08-08 09:26:47757검색

글을 작성할 때 아무것도 입력하지 않고 직접 제출하면 오류 메시지 없이 빈 글이 나오는데 이는 잘못된 것입니다. 명령줄에서 php artisan을 실행하면 새 양식 요청 클래스를 생성하는 make:request 옵션이 표시됩니다. 명령줄에서 실행

<code>php artisan make:request CreateArticleRequest</code>

생성된 파일은 app/http/requests 디렉터리에 있습니다. 파일에서 두 가지 방법을 볼 수 있습니다:

<code>	public function authorize()
	{
		return false;
	}
	
	public function rules()
	{
		return [
			//
		];
	}</code>

authorize 양식을 제출할 때 사용자가 인증된 사용자여야 하는지 여부를 나타냅니다. 인증이 필요하지 않으며 true를 반환합니다. rules은 규칙 방법입니다. 이 방법을 수정해 보겠습니다.

<code>	public function authorize()
	{
		//修改为 true,表示不需要认证,或者是通过认证
		return true;
	}
	
	public function rules()
	{
		return [
			'title' => 'required|min:3',
        'body' => 'required',
        'published_at' => 'required|date'
		];
	}</code>

다른 제약 조건에 대해서는 laravel 문서를 확인하세요. 위의 제약조건은 title는 반드시 3자 이상 입력해야 하며, body는 필수, published_at는 필수이고 날짜임을 나타냅니다.

뷰에서 언제든지 $errors 변수에 액세스하여 오류가 있는지 확인하고 뷰를 수정할 수 있습니다.

<code>
    @if ($errors->any())
        <ul class="alert alert-danger">
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    @endif
    
    {{--使用我们添加的 illuminate\html 开源库--}}
    {!! Form::open(['url' => 'articles']) !!}</code>

컨트롤러를 수정하고 요청 클래스를 소개합니다.

<code>    public function store(Requests\CreateArticleRequest $request) {
        Article::create($request->all());

        return redirect('articles');
    }</code>

아무 것도 작성하지 않고 양식을 다시 제출하면 오류 메시지가 표시됩니다.

안내 정보를 중국어로 수정

은 오류 메시지를 영어로 표시합니다. 실제로 laravel은 국제화 문제를 고려하여 config/app.php

을 먼저 수정합니다.
<code>	'locale' => 'zh',</code>

로캘 언어를 중국어로 설정한 다음 resources/lang 아래에 새 폴더 zh를 만들고 resources/lang/en/validation.php 파일을 zh 디렉터리에 복사한 후 다음을 수정합니다.

<code>	"min"                  => [
		"numeric" => "The :attribute must be at least :min.",
		"file"    => "The :attribute must be at least :min kilobytes.",
		"string"  => ":attribute 至少要包含 :min 字符。",
		"array"   => "The :attribute must have at least :min items.",
	],
	
	"required"             => ":attribute 必须填写。",</code>

다른 내용은 직접 번역할 수 있습니다. 빈 양식을 다시 제출하면 오류 메시지가 중국어로 표시됩니다. 그리고 min:3의 판단도 한자 3자 이상입니다.

--

Laravel은 validate 메소드를 컨트롤러에 통합합니다. 즉, 요청 클래스를 생성할 필요가 없습니다. 컨트롤러에서 직접 이러한 작업을 완료할 수 있습니다.

컨트롤러 수정:

<code>	 //注意 Request 的命名空间,不要弄错了
    public function store(\Illuminate\Http\Request $request) {

        $this->validate($request, [
            'title' => 'required|min:3',
            'body' => 'required',
            'published_at' => 'required|date'
        ]);

        Article::create($request->all());

        return redirect('articles');
    }</code>

결과는 동일하므로 간편인증이 더 빠르게 완료될 수 있습니다.

이상에서는 Laravel 5(11)의 기본 사항인 양식 유효성 검사에 대한 내용을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.