> 백엔드 개발 > PHP 튜토리얼 > Laravel 5.2 新特性系列 -- 表单数组输入验证功能实现

Laravel 5.2 新特性系列 -- 表单数组输入验证功能实现

WBOY
풀어 주다: 2016-06-23 13:16:13
원래의
1115명이 탐색했습니다.

Laravel 5.2 新增表单 数组 输入验证,听起来很懵?下面我们以一个具体例子来演示这一功能。

首先在 routes.php 定义相应路由:

Route::get('form','TestController@form');Route::post('form/validate','TestController@validate');
로그인 후 복사

然后使用Artisan命令创建对应控制器:

php artisan make:controller TestController
로그인 후 복사

编辑生成的 TestController.php 文件内容如下:

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Http\Requests;use App\Http\Controllers\Controller;class TestController extends Controller{    public function form()    {        return view('test.form');    }    public function validate(Requests\FormRequest $request)    {        return 'success';    }}
로그인 후 복사

接下来创建表单视图文件 resources/views/test/form.blade.php ,编辑 form.blade.php 文件内容如下:

@extends('layouts.app')@section('content')    <div class="container">        <div class="row">            @if (count($errors) > 0)            <div class="alert alert-danger">                <ul>                    @foreach ($errors->all() as $error)                    <li>{{ $error }}</li>                    @endforeach                </ul>            </div>            @endif            <form action="{{url('form/validate')}}" method="POST">                {!! csrf_field() !!}                <label>Company Name</label>                <input type="text" name="name">                <h3>Employees</h3>                <div class="add-employee">                    <label>Employee Name</label>                    <input type="text" name="employee[1][name]">                    <label>Employee Title</label>                    <input type="text" name="employee[1][title]">                </div>                <div class="add-employee">                    <label>Employee Name</label>                    <input type="text" name="employee[2][name]">                    <label>Employee Title</label>                    <input type="text" name="employee[2][title]">                </div>                <input type="submit">            </form>        </div>    </div>@endsection
로그인 후 복사

我们在表单中定义了数组输入字段 employee[][name] 和 employee[][title] ,以便同时输入多个员工姓名和职位。

此外,注意到我们在控制器 TestController 的 validate 方法中注入了 FormRequest 请求类,我们将在这个类中实现表单输入验证逻辑,下面我们使用Artisan命令生成这个请求类:

php artisan make:request FormRequest
로그인 후 복사

这样会在 app/Http/Requests 目录下生成 FormRequest.php ,编辑该文件内容如下:

<?phpnamespace App\Http\Requests;use App\Http\Requests\Request;class FormRequest extends Request{    /**     * Determine if the user is authorized to make this request.     *     * @return bool     */    public function authorize()    {        return true;    }    /**     * Get the validation rules that apply to the request.     *     * @return array     */    public function rules()    {        return [            'name'=>'required|max:100',            'employee.*.name'=>'required|max:100',            'employee.*.title'=>'required|max:100'        ];    }}
로그인 후 복사

至此,我们已经完成代码编写工作,下面我们来测试数组输入验证,在浏览器中访问 http://laravel.app/form ,页面显示如下:

我们接下来输入一些表单数据:

最后,点击“提交”按钮,显示验证错误提示信息:

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿