Eloquent Route 隐式绑定 Laravel 5.6 不起作用

Jul*_*ael 0 php binding laravel eloquent

我试图开发一个应用程序,我想使用路由绑定,但出了点问题,我不知道是什么。Plz,看看下面的代码,帮我看看哪里出了问题。

路线

|        | PATCH    | api/v1/filial/{filial}                  |      | Genesis\Base\Filial\Controllers\FilialController@update                    | auth:api   |
Run Code Online (Sandbox Code Playgroud)

模型

class Filial extends Model{

/**
 * @var string
 */
protected $table = "filiais"; ...
Run Code Online (Sandbox Code Playgroud)

控制器

class FilialController extends BaseFormController{...
    public function update(FilialRequest $request, Filial $filial){
       dd($filial);
    }...
Run Code Online (Sandbox Code Playgroud)

然后输出是一个空模型。我不知道这是什么错误,参数的,模型的,Uri 所有这些都匹配。我从这个项目开始就使用 Laravel 5.6。

Ale*_*ris 6

确保您已正确设置所有内容,kernel.php您应该拥有:

protected $routeMiddleware = [
    ...
    'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ...
];
Run Code Online (Sandbox Code Playgroud)

您还需要确保您的路由中有绑定中间件:

Route::group(['middleware' => ['bindings'], function() {
    // routes
}
Run Code Online (Sandbox Code Playgroud)

如果这仍然不起作用,我会选择查看显式路由绑定

要注册显式绑定,请使用路由器的模型方法为给定参数指定类。您应该在 RouteServiceProvider 类的 boot 方法中定义显式模型绑定:

public function boot()
{
    parent::boot();

    Route::model('filial', App\Filial::class);
}
Run Code Online (Sandbox Code Playgroud)