Laravel $ requst-> all()方法返回一个空数组

时间:2019-12-02 02:56:07

标签: php laravel

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)返回一个值?

3 个答案:

答案 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参数的“后备”功能,但将首先使用输入。