Laravel 的表单验证 , 如何做到验证并改变 ( 转换 ) 数据 ?
$validator = Validator::make($request->all(), [
// 如何在这里转换数据
'id' => 'required|integer'
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
需求是这样的,比如 , id 传来的是 5,虽然可以通过 Laravel 的 integer 验证 , 但是它其实是一个 string 类型 ,导致我后面如果不强转换为 int , 程序就会出错 。虽然我可以在后面自己强转化 , 但是这样是违背 Laravel 优雅原则的 , 我想在验证的同时就转换数据 。
所以有什么办法可以做到在验证的同时并且转换数据吗 ?谢谢大家了 。
我已解决 。
但是,我找了好久找不到在验证的同时转换数据的,应该确实不能做到。
不过我想到了一种更好的方法 。
解决方法是使用中间件,请参考Laravel 的中间件 TrimStrings 和 ConvertEmptyStringsToNull 。
解决方法的思想是 :在中间件中,处理每一个参数,参数如果正是我们所要查找的,我们就可以对它做一些转换。
具体请看文章 :Laravel 的表单验证 , 如何做到验证并改变 ( 转换 ) 数据 ?( 使用中间件 )