首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel-5.8:路线显示不返回任何值

Laravel-5.8:路线显示不返回任何值
EN

Stack Overflow用户
提问于 2019-08-18 18:34:43
回答 2查看 228关注 0票数 0

在以前版本的Laravel中,我在显示功能的控制器中使用了类似的东西。

代码语言:javascript
复制
Route::resource( 'our-project', 'ProjectController' );

public function show( Project $project ) {
        return view( 'portalComponents.projects.projectDetails', compact( 'project' ) );
}

我在Laravel5.8中尝试了同样的方法,但是$project属性是空的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-18 18:39:46

路由模型绑定不适用于our-project/1,因为laravel无法推断该模型。它尝试将our-project占位符绑定到show方法中具有名称的变量。这个论点根本不存在。因为如果这样,$project变量将保持空。

以下资源将发挥作用:

代码语言:javascript
复制
Route::resource( 'projects', 'ProjectController' );

因为这在路由中使用project占位符。检查php artisan route:list的输出

使用不同前缀的同一资源也是可能的:

代码语言:javascript
复制
Route::resource('projects', 'ProjectController');

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

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

票数 4
EN

Stack Overflow用户

发布于 2019-08-19 20:08:59

为了更完整,并作为@MaartenDev正确答案的替代,如果您想定义与资源路由一起使用的参数的名称,可以使用parameters()函数,即:

代码语言:javascript
复制
Route::resource( 'our-project', 'ProjectController' )
    ->parameters(['our-project' => 'project']);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57547350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档