JavaScript
this.request('post', `${controller_url}/update/${id}/${this.updated_row.title}/${this.updated_row.description}`)
路线:
Route::post('/categories/update/{id}/{title}/{description}', 'CategoryController@update');
控制器:
public function update( Request $request, $id, $title, $description)
{
var_dump($id);
dd($request->all());
}
结果:
string(2) "81"
[]
我想知道为什么$request->all()
返回一个空数组而var_dump($id)
返回一个值?
答案 0 :(得分:3)
id是作为URL而不是作为查询参数或请求主体出现的。您的路线正在URL中读取。如果将其作为?id=81
传递,则会得到它。
答案 1 :(得分:1)
这是预期的行为,因为Laravel不将{id}/{title}/{description}
视为input
。
所以所有这些都是null
$request->input('id')
$request->input('title')
$request->input('description')
和$request->all()
仅获得所有input()
值加上files
。因此,该数组应该为空。
答案 2 :(得分:0)
路由参数不是“输入”。 $request->all()
基本上是$request->input()
加上文件。
请求$request->somevar
上的动态属性具有使用route参数的“后备”功能,但将首先使用输入。