Laravel DI 值为空

Posted

技术标签:

【中文标题】Laravel DI 值为空【英文标题】:Laravel DI value is empty 【发布时间】: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() 【参考方案1】:

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

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

public function show(ClientRequest $pioneer)

    return view('show', compact('pioneer'));

【讨论】:

欣赏!!现在可以了!!!谢谢!!

以上是关于Laravel DI 值为空的主要内容,如果未能解决你的问题,请参考以下文章

如果请求值为空,Laravel 设置默认值

laravel 5 csrf_token 值为空

laravel 5 csrf_token值为空

Laravel 要求数据库中是不是为空

Laravel 测试。测试时重置控制器 DI

Laravel 服务容器 IoC(控制反转) 和 DI(依赖注入)