Laravel控制器类型提示

Vic*_*oni 3 php type-hinting laravel laravel-5.6

使用-mcr(php artisan make:model Institution -mrc)创建模型后,控制器中的show函数被搭建为:

 /**
 * Display the specified resource.
 *
 * @param  \App\Organization\Institution  $institution
 * @return \Illuminate\Http\Response
 */
public function show(Institution $institution)
{
    return view('institutions.show', ['institution' => $institution]);
}
Run Code Online (Sandbox Code Playgroud)

返回查看......被我插入.我期待它用参数中发送了id的对象填充它.

/institutions/1
Run Code Online (Sandbox Code Playgroud)

但是,在使用dd($ institution)之后,我验证它有ID,而不是对象.

这个变量不应该归还我的对象吗?

Mun*_*nch 9

这称为路径模型绑定.您的路线需要看起来像:

Route::get('institutions/{institution}', 'InstitutionController@show');
Run Code Online (Sandbox Code Playgroud)

然后根据你的控制器

public function show(Institution $institution) 
{
    return view('institutions.show', compact($institution))
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多相关内容.

我想你的路线有一个叫做的参数{id}而不是{institution}.