验证器支持返回请求数据咯!(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 于 7年前 加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8
Summer

非常赞

7年前 评论
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'] = 输入的值;
}
7年前 评论

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

5年前 评论

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