验证器支持返回请求数据咯!(Laravel 5.5 新功能早知道)

file

Laravel 5.5 增加了一个新功能,Validation 将会返回请求验证的数据,以便你能拿到所需的一切数据。

Joseph Silber 在推特上推出了一个很好的例子:

FizH4kxE2D.png

欢迎复制黏贴:

public function store()
{
    $data = $this->validate(request(), [
        'name' => 'required',
        'price' => 'required|numeric',
        'category_id' => 'numeric|exists:categories',
    ]);

    // $data = request()->only('name', 'price', 'category_id');

    return Product::create($data);
}

麻烦的是,新增的 request()->only() 这个方法需要你确保并定义验证中的所有字段,即使不需要验证它们。 解决的方法就是通过使用如下的空规则添加该字段:

$data = $this->validate(request(), [
    'name' => 'required',
    'price' => 'required|numeric',
    'notRequiredField' => '',
]);

如此一来这个 notRequiredField 字段就可以不受任何验证规则限制,自动地为你添加到请求返回的数据中去。

今天的骏妞儿 Laravel 新闻早报就到这里!:tada:

更多新闻资讯请上 Laravel China 资讯站 查看。

参考链接:https://laravel-news.com/request-data-vali...

本作品采用《CC 协议》,转载必须注明作者和本文链接
Stay Hungry, Stay Foolish.
本帖由 Summer 于 6年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 8
Summer

非常赞

6年前 评论
yybawang

也可以这么写,写错了无意间发现的..........

use use Illuminate\Http\Request;
public function login(Request $request){
    $param = $request->validate([
        'name'    => 'required',
    ]);
   // 当然也可以在别的地方用 request() 方法
   $param = request()->validate([
        'name'    => 'required',
    ]);
// 没验证通过自动跳转到之前的页面或json,成功返回验证后的字段,验证成功后返回,
//  $param['name'] = 输入的值;
}
6年前 评论

validate 如何 有值才验证 没值不进行验证呢?

4年前 评论

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