在Laravel 6.2上运行-稳定发布
我不完全确定哪里出了问题——它在一种方法中有效,但在另一种方法不起作用。唯一的区别是URL格式。
(只需尝试从帖子请求中获取身体信息(
例如,我在控制器中有以下方法。
/** METHOD IS POST - URL FORMAT: SERVER.COM/$number **/
private function populate(Request $request, $number){
//
$request->get('x'); // Works
}
然而,当这样做时:
/* POST METHOD - URL FORMAT: server.com/$number/example/$position
private function unpopulate(Request $request, $number, $position){
$request->get('x'); // Fails
}
填充邮差DD
IlluminateHttpRequest {#54
#json: SymfonyComponentHttpFoundationParameterBag {#46
#parameters: array:1 [
"x" => "2005-08-15T15:52:01+00:00"
]
}
取消填充邮差DD
IlluminateHttpRequest {#54
#json: null
#convertedFiles: null
#userResolver: Closure($guard = null) {#34
如果我在unpopulate中对$request
进行json_decode,则返回:
-_jsonRequest: {#287
+"finished_at": "2005-08-15T15:52:01+00:00"
但是当尝试访问它时,我会得到一个null值。
$test = json_decode ( $request->getContent() ); // Decodes
$test->x // Fails
isset($test->x) // Fails
关于如何解决这个问题以及为什么会发生这种情况,有什么想法吗?
get()
的方法与Symfony略有不同。
当数据来自表单时,请使用$request->input('x');
来避免冲突。
这将有所帮助,但您的问题可能与传入的数据有关。如果你在unpop方法中dd($request->all())
,并且得到null,那么这个问题是你在表单推送上的问题中没有显示的。