0

大家下午好,我遇到了一个问题,不知道你们有没有同样的问题,我升级了我的 Laravel 项目,现在所有的路线都是这样的

Route::get('detail/client/{client}', "controller@method")

正在破坏一切,因为控制器中实例化的对象为空......

public function detail(FileRequest $request, Client $client){

 dd($client) // empty object
}

如果有人可以帮我解决这个问题。如果我删除客户端模型并dd返回对象的 ID,即“594”

4

1 回答 1

3

您还没有编写要升级的基本 Laravel 版本,但我认为它可能与\Illuminate\Routing\Middleware\SubstituteBindings::class中间件有一些共同点。

确保您在 middlwareGroups 中拥有它,如下所示:

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        // \Illuminate\Session\Middleware\AuthenticateSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class, // <- this is the line you should have
    ],
    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

在 app/Http/Kernel.php 文件中

并确保您遇到问题的路线在web中间件组中。

于 2017-09-01T20:09:01.800 回答