无法从路由获取请求的数据

时间:2021-02-23 06:11:03

标签: laravel

Laravel 8,PHP 7.4.3
尝试从路由中获取请求 ID。在这种情况下,我想从路线中获得 52

这是一个基本问题,仍然给我带来了问题。
我的路线 {{3} }
我的代码
ExpenseController.php

// namespace App\Http\Controllers;
public function edit(Request $request, Expense $expense)
{
//I tried running each dd individually.
    dd( $request->get('id') ); //returns null
    dd( $request->id ); //returns null
    dd( $request['id'] ); // returns null
}

为了参考这个控制器,http://127.0.0.1:8000/user/expense/52/edit
请注意,路由是由web.php文件中的Route::resource函数生成的。
我想知道如何从路由中获取ID。
我也尝试使用自定义表单请求,但由于 id 为空,再次失败,
IDRequest.php

//namespace App\Http\Requests;
public function authorize()
{
    return true;
}

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'id' => 'required'
    ];
}

这种方法也让我失望。请告诉我我错过了什么。 check this 的链接
感谢每一个帮助和提示。

1 个答案:

答案 0 :(得分:1)

// namespace App\Http\Controllers;
public function edit(Request $request, Expense $expense)
{

}

$request->get('id') 在您的表单数据或参数中查找 id 参数。

费用 $expense 将根据路由值加载主键 ID 为 52 的资源。您可以从 $expense 变量中获取 id。