Laravel基础(请求,响应,表单验证,验证码)

本文详细介绍了Laravel框架中获取请求数据的多种方式,包括Input类、Request对象以及辅助函数,并展示了如何设置和获取cookie、进行重定向、返回JSON和视图。此外,还详细讲解了Laravel的表单验证,包括使用$this->validate()、独立验证器以及验证器类的方式,以及验证码的集成和验证。
摘要由CSDN通过智能技术生成

请求
Input类来获取数据

use Illuminate\Support\Facades\Input;

        //获取单个字段
        $username = Input::get("username", "zhangsan");
        dump(Input::all());
        //获取指定的字段
        dump(Input::only(['username', "password"]));
        //黑名单方式获取字段,除了password之外
        dump(Input::except(["password"]));
        //判断字段中是否有age
        dump(Input::has("age"));
Request 获取数据

laravel以一个依赖注入的方式,帮我们实例获取对象

    public function login2(Request $request) {
        //获取指定字段
        $username = $request->get("username", 'null');
        //获取所有字段
        dump($request->all());
        //获取指定范围内字段
        dump($request->only(['username', 'password']));
        //排除字段
        dump($request->except(['age']));
        //检测字段
        dump($request->has("age"));
    }
辅助函数的方式

\request() 方法同$request

响应
设置cookie

laravel框架为了安全,它的cookie是加密的
简单用法cookie($name, $value, $minutes, $path, $domain, $secure, $httpOnly)
response(“设置了cookie”)->cookie(“name”, “value”, 5);

获取cookie

request()->cookie(“cookie_key”);

重定向

redirect()->route(“路由别名”) 或 redirect(route(“路由别名”,[“param” => “value”]))

返回json
return response()->json(['id'=>3, "name"=>"admin"], 200);
返回视图

view(“视图名”) 如 视图路径为 resource/view/test/index.blade.php 则 view(“test.index”)
传入数据
view(“index”, compact(“name1”,“name2”))

表单验证
方式一:

$this->validate()

        $input = $this->validate($request, [
           'username' => 'required|between:2,4',
           //confirmed写在password中
           'password' => 'required|confirmed',
           'password_confirmation' => 'required',
           'email' => 'required|email'
        ],[
            'username.required' => '用户名必须填写',
            'email.required' => '邮箱不能为空',
            'password.confirmed' => "两次密码不一致"
        ]);
 //错误展示 在 index.blade.php中
   @if($errors->any())
  <div class="alert alert-danger">
      <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
      <ul>
      @foreach ($errors->all() as $error)
          <li>
              {{$error}}
          </li>
       @endforeach
      </ul>
  </div>
  @endif
独立验证方式
        $validator = Validator::make($request->all(), [
            'username' => 'required|between:2,4',
            'password' => 'required|confirmed',
            'password_confirmation' => 'required',
            'email' => 'required|email'
        ],[
            'username.required' => '用户名必须填写',
            'email.required' => '邮箱不能为空',
            'password.confirmed' => "两次密码不一致"
        ]);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator);
        }
验证器方式【推荐】

php artisan make:request UserReqest
在HTTP/Request文件夹下生成
将默认的权限验证放开

    public function authorize()
    {
        return true;
    }

配置规则与错误提示信息

    public function rules()
    {
        return [
            //
            'username' => 'required|between:2,4',
            'password' => 'required|confirmed',
            'password_confirmation' => 'required',
            'email' => 'required|email'
        ];
    }

    public function messages()
    {
        return [
            'username.required' => '用户名必须填写',
            'email.required' => '邮箱不能为空',
            'password.confirmed' => "两次密码不一致"
        ];
    }

使用:
在控制器中引入,然后替代原来的Request即可
在这里插入图片描述

验证码
  1. composer require mews/captcha
  2. config/app.php
    在服务提供者中添加此项
    ‘providers’ => [
    Mews\Captcha\CaptchaServiceProvider::class,
    ]
    #同时注册下相应门面:
    ‘aliases’ => [
    ‘Captcha’ => Mews\Captcha\Facades\Captcha::class,
    ]
  3. 发布配置
    php artisan vendor:publish
  4. 使用
    <img src="{!! captcha_src('mini') !!}}" alt="na"/>
  5. 验证
	public function rules()
    {
        return [
            //
            'username' => 'required|between:2,4',
            'password' => 'required|confirmed',
            'password_confirmation' => 'required',
            'code' => 'required|captcha'
        ];
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值