【问题标题】:Laravel DI value is emptyLaravel DI 值为空
【发布时间】:2021-12-31 07:50:44
【问题描述】:

这个有效

     public function show($id)
    {
        $request = ClientRequest::find($id);
        return view('show', compact('request'));
    }

这个不行!! dd($request) 表示属性为空

    public function show(ClientRequest $request)
    {
        return view('show', compact('request'));
    }

这是我的路线

Auth::routes();

Route::resource('pioneer', RequestController::class);

型号

class ClientRequest extends Model
{
    use HasFactory;
    protected $guarded = [];
}

谁知道问题出在哪里? google了一下,还是搞不清楚。

【问题讨论】:

  • 你也可以更新你的路线吗?
  • 使用路由模型绑定,URL段和函数参数必须匹配。因此,请确保您的路线定义中的段称为 {request} 而不是其他名称。
  • 确保路由变量与您的 show 方法中的变量完全相同:$request
  • 我用Route::resource()

标签: php laravel dependency-injection routes


【解决方案1】:

正如我在评论中提到的,route model binding 的 URL 段和函数参数名称必须匹配。

您的 URL 段是 pioneer,由您的 Resource 路由定义定义,因此您需要使用 pioneer 作为函数参数名称。

public function show(ClientRequest $pioneer)
{
    return view('show', compact('pioneer'));
}

【讨论】:

  • 欣赏!!现在可以了!!!谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多