Laravel-5.8:路线表演don';不返回任何值

Laravel-5.8:路线表演don';不返回任何值,laravel,laravel-5,laravel-5.8,Laravel,Laravel 5,Laravel 5.8,在以前版本的Laravel中,我在控制器的show函数中使用了类似的东西 Route::resource('ourproject','ProjectController'); 公共功能展示(项目$Project){ 返回视图('portalComponents.projects.projectDetails',compact('project'); } 我在laravel 5.8中也尝试了同样的方法,但是$project属性为空。路由模型绑定对我们的项目/1不起作用,因为laravel无法推断

在以前版本的Laravel中,我在控制器的show函数中使用了类似的东西

Route::resource('ourproject','ProjectController');
公共功能展示(项目$Project){
返回视图('portalComponents.projects.projectDetails',compact('project');
}

我在laravel 5.8中也尝试了同样的方法,但是
$project
属性为空。

路由模型绑定对
我们的项目/1
不起作用,因为laravel无法推断模型。它尝试将
ourproject
占位符绑定到
show
方法中具有名称的变量。这个论点不存在。因为如果这样做,
$project
变量将保持为空

以下资源将发挥作用:

Route::resource( 'projects', 'ProjectController' );
因为这在管线中使用了
项目
占位符。检查php artisan route:list的输出

同样的资源也可以有不同的前缀:

Route::resource('projects', 'ProjectController');

Route::group(['prefix' => 'admin'], function () {
    Route::resource('projects', 'ProjectController');
});

第一个是
/projects/1
,第二个是
/admin/projects/

,为了完整起见,作为@MaartenDev right answer的替代方案,如果要定义用于资源路由的参数名称,可以使用
parameters()
函数,即:

Route::resource('ourproject'、'ProjectController')
->参数(['our-project'=>'project']);

谢谢这很好。这里还有一个问题,我可以有两个同名但前缀不同的
路由
,比如
路由::组(['prefix'=>'admin'],函数(){Route::resource('projects','ProjectController');})
路由::资源('project','ProjectController')parameters()
函数一起使用的参数的名称,即:
Route::resource('our-project','ProjectController')->parameters(['our-project'=>'project'])@dparoli谢谢,请添加答案,这可能会帮助其他人