做开发有个原则是永远不能信任用户输入的数据;
即便前端已经做了验证;
在后端 php 也必须要再次验证;
laravel 为表单验证提供了强大且简单的方案;
创建示例路由:
routes/web.php
Route::prefix('validation')->group(function () {
Route::get('create', 'ValidationController@create');
Route::post('store', 'ValidationController@store');
Route::get('edit', 'ValidationController@edit');
Route::post('update', 'ValidationController@update');
});
PHP
创建控制器
php artisan make:controller ValidationController --resource
Bash
app/Http/Controllers/ValidationController.php
public function create()
{
return view('validation.create');
}
PHP
创建视图;
这里直接把官方自带的注册页面复制过来做示例了;
为了方便验证后台我把 html 标签的验证删除了;
并增加了一个 tag 选项;
resources/views/validation/create.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">注册</div>
<div class="panel-body">
<form class="form-horizontal" method="POST" action="{{ url('validation/store') }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has('tag') ? ' has-error' : '' }}">
<label class="col-md-4 control-label">标签</label>
<div class="col-md-6">
<select class="form-control" name="tag">
<option value="">请选择标签</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
@if ($errors->has('tag'))
<span class="help-block">
<strong>{{ $errors->first('tag') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<label for="name" class="col-md-4 control-label">用户名</label>
<div class="col-md-6">
<input id