laravel框架Requests 验证器

发布时间:2022-09-06 19:26:09 阅读:1091次

在laravel中我们还可以通过创建验证器来进行表单验证

通过命令行

$ php artisan make:request UserRequest

创建验证器

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UserRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {   
        // 是否使用权限验证,false 使用,true 不使用,默认 fase
        // return false;
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            // 字段名 => 规则名(多规则用 | 隔开)
            'account' => 'required|between:2,6',
            // 确认密码的 confirmed 属性一定要写在原始密码上
            'pwd' => 'required|confirmed',
            'pwd_confirmation' => 'required',
            'email' => 'required|email'
        ];
    }

    // 错误提示
    public function messages()
    {
        return [
            // 字段名.规则名 => 错误语句
            'account.required' => '用户名不能为空',
            'account.between' => '用户名必须为2-6个字符',
            'pwd.required' => '密码不能为空',
            'pwd_confirmation.required' => '确认密码不能为空',
            'pwd.confirmed' => '两次密码不一致',
            'email.required' => '邮箱不能为空',
            'email.email' => '邮箱格式不正确',
        ];
    }

}

成功后会在 Http 文件夹中会多出来一个 Requests 文件夹,它会存放所有验证器,现在里面就包含了刚才新建的自定义 Request 类 UserRequest

然后在controller中使用

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

// 导入自定义的 Request 类
use App\Http\Requests\UserRequest;

class UserController extends Controller
{   
    // 显示添加用户页面
    public function index() {
        return view('user.index');
    }

    // 处理添加用户操作
    public function save(UserRequest $request) {
        // 输出请求数据
        dump($request->all());
        // aravel 5.6 之前是不会自动移除 _token 验证字段的,需要手动移除
        // dump($request->except(['_token']));

        // 表单数据后台验证
        // 这里将不用在写验证,将上面的 Request 换成 UserRequest 即可实现效验
    }
}

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:laravel框架Requests 验证器 出自老鄢博客 | 欢迎分享