Laravel 5框架学习之表单验证
Laravel框架通过Validation类提供了一种简单而方便的机制来验证数据的正确性,并显示相应的验证错误信息。对于更复杂的验证场景,你可能需要创建一个表单请求。表单请求是一个自定义的请求类,其中包含了一些验证逻辑。你可以通过Artisan命令行工具轻松地创建一个表单请求类。
当你创建一个新的文章但什么都没输入直接提交时,Laravel会返回一个空的文章而没有错误提示,这显然是不合理的。为了解决这个问题,你可以使用Laravel的命令行工具来创建一个表单请求类。在命令行中运行以下命令:
```arduino
php artisan make:request CreateArticleRequest
```
这个命令会在`app/http/requests`目录下生成一个新的请求类文件。在这个文件中,你会看到两个方法:`authorize`和`rules`。
`authorize`方法用于判断用户在提交表单时是否需要认证。对于创建文章的请求,我们可能不需要用户认证,因此我们可以修改这个方法如下:
```php
public function authorize()
{
// 不需要认证,或者已经通过认证
return true;
}
```
rules`方法用于定义验证规则。让我们修改这个方法以添加一些基本的验证规则:
```php
public function rules()
{
return [
'title' => 'required|min:3', // 标题必填,且至少3个字符
'body' => 'required', // 正文必填
'published_at' => 'required|date' // 发布日期必填,且必须是有效日期
];
}
```
在视图中,你可以通过访问$errors变量来判断是否有错误发生,并据此修改视图以显示错误。例如:
```html
@if ($errors->any())
- {{ $error }}
@foreach($errors->all() as $error)
@endforeach
@endif
```
在控制器中,你需要引入你的Request类。例如:
```php
public function store(Requests\CreateArticleRequest $request) {
Article::create($request->all());
return redirect('articles');
}
```
当你提交表单且没有填写任何内容时,你应该能看到错误信息。为了将错误信息从默认的英文改为中文,你需要修改Laravel的配置文件以及相应的验证语言文件。具体步骤如下:
1. 修改`config/app.php`文件中的locale设置为'zh'。
2. 在`resources/lang`目录下创建新的文件夹'zh',并复制英文验证文件到该文件夹下。然后根据你的需求修改这些文件,例如将"min"和"required"的提示信息改为中文。其他的验证错误信息也可以自行翻译。这样你就能让Laravel显示中文的验证错误信息了。在 Laravel 框架中,控制器集成了强大的验证功能,使得开发者无需额外生成 Request 类,直接在控制器内即可完成验证工作。这是一个既方便又高效的操作方式。
修改后的控制器代码示例如下:
注意 Request 的命名空间,确保正确引入。
```php
public function store(\Illuminate\Http\Request $request) {
// 在控制器内直接进行表单验证
$this->validate($request, [
'title' => 'required|min:3', // 标题必填,且最小长度为3
'body' => 'required', // 正文内容必填
'published_at' => 'required|date' // 发布日期必填且需为有效日期格式
]);
// 创建文章记录
Article::create($request->all());
// 验证成功后重定向到文章列表页面
return redirect('articles');
}
```
通过这段代码,我们可以实现同样的功能,并且省去了生成 Request 类的步骤,大大简化了开发流程。这种方式的优点在于能够更快速地完成简单的验证工作,提高开发效率。Laravel 框架的验证功能非常强大,开发者可以根据实际需求进行灵活的定制和扩展。希望以上内容对大家熟练掌握 Laravel5 框架有所帮助。 无需额外的操作,您的文章已成功渲染在前端页面。如果您还有其他问题或需要进一步的帮助,请随时提问。
编程语言
- Laravel 5框架学习之表单验证
- ASP类编写详细说明
- PHP动态柱状图实现方法
- ThinkPHP 模板引擎使用详解
- JS实现网页右侧带动画效果的伸缩窗口代码
- PHPExcel实现的读取多工作表操作示例
- jQuery检测滚动条是否到达底部
- vue.js获取数据库数据实例代码
- asp.net MVC使用PagedList.MVC实现分页效果
- 使用jquery组件qrcode生成二维码及应用指南
- asp之让Session永不过期
- 用js实现每隔一秒刷新时间的实例(含年月日时分
- javascript中window.open在原来的窗口中打开新的窗口
- JavaScript程序设计高级算法之动态规划实例分析
- vue2.0项目中使用Ueditor富文本编辑器示例代码
- vue 组件高级用法实例详解