我试图开发一个应用程序,我想使用路由绑定,但有些东西是错的,我不知道它是什么。 Plz,看下面的代码并帮助我解决它的错误。
路线
| | PATCH | api/v1/filial/{filial} | | Genesis\Base\Filial\Controllers\FilialController@update | auth:api |
模型
class Filial extends Model{
/**
* @var string
*/
protected $table = "filiais"; ...
控制器
class FilialController extends BaseFormController{...
public function update(FilialRequest $request, Filial $filial){
dd($filial);
}...
然后输出作为模型为空。我不知道它是什么错,参数,模型,Uri所有这些东西都匹配。我从项目开始就开始使用Laravel 5.6。
答案 0 :(得分:2)
确保在kernel.php
您应该拥有的内容中正确设置所有内容:
protected $routeMiddleware = [
...
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
...
];
您还需要确保路线中有绑定中间件:
Route::group(['middleware' => ['bindings'], function() {
// routes
}
如果仍然无效,我会选择查看explicit route binding:
要注册显式绑定,请使用路由器的模型方法 指定给定参数的类。你应该定义你的 在引导方法中显式模型绑定 RouteServiceProvider类:
public function boot()
{
parent::boot();
Route::model('filial', App\Filial::class);
}