request 里怎么验证提交的验证码?

控制器里生成了个 '1234' 这样的验证码, 存到了session里 $request->session()->put('code', '1234),
前台提交了一个用户输入的验证码, 我想在request里实现验证,该怎么写?

下面是我的request.php



namespace App\Http\Requests;

use App\Http\Requests\Request;

class UserStoreRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return false;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'mobile' => 'sometimes|required|mobile',
            'password' => 'sometimes|required|confirmed'
        ];
    }

    /**
     * 自定义错误信息
     *
     * @see \Illuminate\Foundation\Http\FormRequest::messages()
     */
    public function messages()
    {
        return [
            'mobile.required' => '请填写手机号',
            'mobile.mobile' => '手机格式有误',
            'password.required' => '请填写密码',
            'password.confirmed' => '两次密码不一致,请重试'
        ];
    }
}

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 8

在这里写不太合适。这里的话你可以验证一下验证码是否是你要求的长度。是否正确需要到相应的控制器逻辑里面完成。

7年前 评论

@zhuzhichao 写到控制器里感觉怪怪的, 不想写那.... :sweat:

7年前 评论

@zhuzhichao 能给个demo吗, 在rules里怎么获取session和传入的验证码做比较。

7年前 评论

@超人爷爷

if( $this->input($codeKey) !== Session::get($codeKey) ) {
    #抛出异常
}

异常的处理可以参考 https://phphub.org/topics/2460

7年前 评论

你可以自行构建验证规则,这样是最 native 的方式。 参见 http://learnku.com/docs/laravel/5.1/valida...

7年前 评论

@zhuzhichao :ok_hand: 多谢, 我试下。

7年前 评论

您这里是怎么解决得,我现在也卡到这里了,详情求你帮忙

5年前 评论
softer 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!