Laravel 5框架表单验证代码

在命令行下运行 php artisan 可以看到一个选项 make:request,新建一个form request类。在命令行执行

php artisan make:request CreateArticleRequest

生成的文件在 app/http/requests 目录下。在文件中我们可以看到两个方法:

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

authorize 表示用户在提交表单的时候是否需要是认证用户,我们不需要认证,返回 true。rules是我们的规则方法。让我们修改这个方法:

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

其他的约束可以插看 laravel 的文档。上面的约束表示 title 是必须输入的,最少3个字符,body 是必须的,published_at 是必须的而且是日期。

在视图中,我们总是可以访问 $errors 变量来判断我们是否有错误,修改视图

@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‘]) !!}

修改控制器,引入我们的 Request 类。

public function store(Requests\CreateArticleRequest $request) {   Article::create($request->all());    return redirect(‘articles‘); }

再次提交表单可以看到错误信息。

修改提示信息变为中文

显示的是英文的错误信息,实际上laravel考虑到了国际化的问题,首先修改 config/app.php ,

‘locale‘ => ‘zh‘,

将 locale 语言设置为中文,然后再 resources/lang 下面新建文件夹 zh, 拷贝 resources/lang/en/validation.php 文件到 zh 目录下,修改:

"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 必须填写。",

再次提交空表单,错误信息为中文了。而且 min:3 的判断也为最少3个中文。

laravel 也在控制器中集成了 validate 方法,我们不一定要生成 request 类,可以直接在控制器中完成。

修改控制器:

//注意 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‘);  }

时间: 2024-10-04 19:57:37

Laravel 5框架表单验证代码的相关文章

js 常用正则表达式表单验证代码

js 常用正则表达式表单验证代码 js 常用正则表达式表单验证代码,以后大家就可以直接使用了. 正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证.替换文本.可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字.根据模式匹配从字符串中提取一个子字符串.可以用来在文本或输入字段中

tp框架表单验证

之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则.静态方式定义好以后其它地方都可以使用. 动态方式:使用模型类的validate方法动态创建自动验证规

tp框架表单验证 及ajax

之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.验证的代码要写在模型层即Model里面. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则.静态方式定义好以后其它地方都可以使用. 动态方式:使用模型类的validate方法动态创建自动验证规

Laravel在进行表单验证时,错误信息未返回

马上要毕业了,找了现在的这家公司,压力不大,自己也比较喜欢,唯一的遗憾就是手机号莫得换了(找不到换的借口). 进入正题: 之前自己的博客(http://lxiaoke.cn)是用ThinkPHP开发的,公司用的是Laravel,在进行表单验证时,遇到了一个比较简单却又让我头疼了好几天的问题,那就是验证不通过时的错误信息一直获取不到.百度上说什么的都有,最后用下面的方法解决了. 解决办法: 将middlewareGroup中的\Illuminate\Session\Middleware\Start

js常用正则表达式表单验证代码

方法一: var re=/正则表达式/; re.test($("txtid").val()) 方法二: $("txtid").val.match(/正则表达式/): 附: 验证数字的正则表达式集(转载) 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 验证

ThinkPHP框架表单验证

对注册到test表的表单进行验证 在注册之前要对表单进行验证: 用户名非空验证,两次输入密码必须一致即相等验证,年龄在18~50之间即范围验证,邮箱格式正则验证. 自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作. 数据验证有两种方式: 静态方式:在模型类里面通过$_validate属性定义验证规则. 动态方式:使用模型类的validate方法动态创建自动验证规则. 无

php--yii框架表单验证

在视图层利用表单小部件生成表单时,field只能是数据库中存在的, 例如:use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\captcha\Captcha; 'sign-form', 'options'=>['action'=>'usermessage/signform', 'method'=>'post', 'enctype'=>'multipart/form-data']]); ?> field($mode

laravel框架——表单验证

创建路由 Route::get('test','[email protected]'); Route::post('tosubmit','[email protected]'); 在控制器中编辑代码 class VerController extends Controller { //表单页面 public function index() { return view('from.from'); } //表单提交验证 //这种是用自带的Request进行验证 // public function

php---tp框架---表单验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证.分为静态验证和动态验证. 关于基础知识,请查看手册"自动验证"一章. 一.静态验证 (1)在Ceshi/Controller/路径下新建Yanzheng控制器. YanzhengController.class.php页面 注意:静态定义方式因为必须定义模型类,所以只能用D函数实例化模型     create方法是对表单提交的POST数据进行自动验证 <?php na