Php 从Laravel 5.2到Laravel 5.4的RouterService Provider

Php 从Laravel 5.2到Laravel 5.4的RouterService Provider,php,laravel,routes,Php,Laravel,Routes,以前我在Laravel5.2中使用过这段代码 路由器服务提供者 public function boot(Router $router) { parent::boot($router); // Model binding $router->model('house', 'App\house'); } public function boot() { // parent::boot(); Route::model('house', Ap

以前我在Laravel5.2中使用过这段代码

路由器服务提供者

public function boot(Router $router)
{
    parent::boot($router);

    // Model binding
    $router->model('house', 'App\house');

}
public function boot()
{
    //

    parent::boot();
    Route::model('house', App\House::class);
}
和在控制器中

public function show(House '$house')
{
        return view('house.show', compact('house'));
}
当我升级到Laravel5.4时,这段代码不起作用。 所以我在RouterServiceProvider中将代码更改为这个

public function boot(Router $router)
{
    parent::boot($router);

    // Model binding
    $router->model('house', 'App\house');

}
public function boot()
{
    //

    parent::boot();
    Route::model('house', App\House::class);
}
但我不知道下面的控制器代码要更改什么

public function show(House '$house')
{
        return view('house.show', compact('house'));
}
,当我运行代码时,我得到了这个错误 (1/1)fatalthrowable错误 分析错误:语法错误,意外的“$house”(T_常量\u封装的\u字符串),应为变量(T_变量)

我需要路由模型绑定来简化代码->(house=house::FindOrFail($id);)

谢谢你的帮助

改变这个

public function show(House '$house')
{
        return view('house.show', compact('house'));
}
对此

public function show(House $house)
{
        return view('house.show', compact('house'));
}

隐式绑定开箱即用:

隐式绑定 Laravel自动解析routes或中定义的雄辩模型 类型提示变量名称与路由匹配的控制器操作 段名称。例如:

Route::get('api/users/{user}',函数(App\user$user){
返回$user->email;
});
因为
$user
变量的类型暗示为
App\user
雄辩 模型和变量名与
{user}
URI段Laravel匹配 将自动注入具有
ID
匹配的模型实例 请求URI中的对应值。如果匹配模型 在数据库中找不到实例,将显示
404
HTTP响应 自动生成

但是,如果要显式声明,可以检查文档的

显式绑定 要注册显式绑定,请使用路由器的model方法 指定给定参数的类。你应该定义你的目标 的启动方法中的显式模型绑定
RouteServiceProvider
class:

公共函数启动()
{
父::boot();
路由::模型('user',App\user::class);
}
接下来,定义包含
{user}
参数的路由:

Route::get('profile/{user}',函数(App\user$user){
//
});
由于我们已将所有
{user}
参数绑定到
App\user
模型,因此
用户
实例将被注入路由。例如,一个 请求
profile/1
将从 ID为
1
的数据库

如果在数据库中找不到匹配的模型实例,则a
404
HTTP响应将自动生成

因此,在你的情况下:

RouteServiceProvider.php

公共函数启动()
{
父::boot();
路线::模型('house',App\house::类);
}
然后在控制器中:

HousesController.php

公共功能展示(House$House)
{
返回视图('house.show',紧凑型('house');
}

您的函数声明错误。请先阅读并练习编程,特别是PHP编程,然后尝试使用Laravel等框架。在我更改为新代码后,没有错误。但是表单中没有查看数据,应该是查看id为1的房屋数据:因为链接是->在我更改为新代码后,没有错误。但是表单中没有查看数据,应该查看id为1的房屋数据:因为链接是->@AndryWibowo。请告诉我们您的路线是如何设置的。它应该是这样的:
GET/house/{house}