Php 受保护的财产不受请求
我有一个Axios post请求,它会向我的Laravel后端发送一个电话号码。在我删除数据库中的一列之前,它一直运行良好。它仍然返回201,但该值未更新。当我Php 受保护的财产不受请求,php,laravel,Php,Laravel,我有一个Axios post请求,它会向我的Laravel后端发送一个电话号码。在我删除数据库中的一列之前,它一直运行良好。它仍然返回201,但该值未更新。当我dd()请求时,它现在是受保护的属性,而不是以前的属性: #json: Symfony\Component\HttpFoundation\ParameterBag {#35 #parameters: array:1 [ "field" => array:2 [ "phone_number" =&g
dd()
请求时,它现在是受保护的属性,而不是以前的属性:
#json: Symfony\Component\HttpFoundation\ParameterBag {#35
#parameters: array:1 [
"field" => array:2 [
"phone_number" => "079600565197"
"id" => 35
]
]
}
因此,在我能够做到之前:
$account->phone_number = $request->get('phone_number');
$account->save();
它只保存null
当我在devtools中检查请求时,它看起来很好:
field: {phone_number: "07960065197", id: 35}
但我无法访问字段中的数据
有没有一种方法可以将其转换回以前的状态,或者直接访问嵌套数据?任何提示都会有很大帮助。您正在将'phone\u number'
属性嵌套在'field'
属性中
要从请求中检索嵌套属性,请执行以下操作:
$request->input('field.phone_number')
我很确定这是因为您正试图从url查询属性中获取'phone\u number'
属性。尝试这样做:$request->input('phone_number')
而不是$request->get('phone_number')
。由于某些原因,它仍然返回null。很抱歉,它应该返回get()
仍然应该返回正确的输入。看起来您的'phone\u number'
属性嵌套在'field'
中。试试:request->input('field.phone_number')
What$request->get('phone_number');如果您添加它,它会返回吗?如果我将它更改为$request->field['phone\u number']
它会工作,但不知道为什么会更改。谢谢Robert,这很有效。这样做:$request->field['phone\u number']
。但仍然不知道为什么会改变。没问题,可能是因为前端的ajax请求中的某些代码发生了更改。