给请求追加自定义值 $request->offsetSet ($key,$value)
数据是jquery.post的表单数据
var data=$('.form').serializeArray();
$.post('url',{data:JSON.stringify(data)},function(res) {
console.log(res);
});
提交到服务器端的格式是FormData:data: [{"name":"name","value":"测试流程"},{"name":"action","value":"save"}]
做了一个数据转换的中间件AjaxFormDataTransformer,方便$request访问数据:
class AjaxFormDataTransformer
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
*
* @return mixed
*/
public function handle($request, Closure $next)
{
$data = json_decode($request->input('data'));
foreach ($data as $v) {
$request->offsetSet($v->name, $v->value);
}
//如果想保留有原输入,注释掉此行
$request->offsetUnset('data');
return $next($request);
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接