技术&日志

laravel-validate

laravel-5.5

Laravel 之 数据验证

  • 快速验证
  • 表单验证

表单验证

表单如果未验证通过侧会返回提交的表单页. 并带回错误信息.

#文件位置于 App\Http\Requests\Test.php
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class Test extends FormRequest
{
/**
* 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 [
'title' => 'required',
'nickname' => 'required',
];
}
/**
* 自定消息
*/
public function messages()
{
return [
'title.required' => '标题不能为空',
'nickname.required' => '昵称不能为空',
];
}
}

使用验证规则

#文件位置于 app\Http\Controllers\Test.php
<?php
namespace App\Http\Controllers;
class TestController extends Controller
{
public function validateView()
{
return view('test/validate');
}
public function validates(Test $request)
{
$all = $request->all(); #如果验证不通过直接重定向回原来的方法并带回错误在模板显示
var_dump($all);
}
}
#文件位置于 resources/views/test/validate.blade.php

@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('Test/validate') }}" method="post">
{{ csrf_field() }}
文本域: <input type="text" name="nickname" /> <br/>
文本域: <input type="text" name="title" /> <br/>

<input type="submit" />
</form>