Laravel依赖注入不起作用

Iai*_*ers 5 laravel laravel-5 laravel-5.4

我在我的laravel应用程序中使用资源控制器,我正在尝试使用依赖注入,但它不适用于特定的模型和控制器.

这有效:

/**
* Display the specified resource.
*
* @param  \App\Booking  $booking
* @return \Illuminate\Http\Response
*/
public function show(Booking $booking)
{
    return $booking;
}
Run Code Online (Sandbox Code Playgroud)

但出于某些令人愤怒的原因,这不是:

/**
 * Display the specified resource.
 *
 * @param  \App\SchoolEvent  $schoolEvent
 * @return \Illuminate\Http\Response
 */
public function show(SchoolEvent $schoolEvent)
{
    return $schoolEvent;
}
Run Code Online (Sandbox Code Playgroud)

我的路线看起来像这样:

// Events
Route::resource('events', Resources\SchoolEventController::class);

// Bookings
Route::resource('bookings', Resources\BookingController::class);
Run Code Online (Sandbox Code Playgroud)

由于某种原因/预订/ 1返回填充的对象,但/ events/1返回空的对象.谁能告诉我为什么?

dpa*_*oli 10

将注入的变量名称更改为$ event:

public function show(SchoolEvent $event)
Run Code Online (Sandbox Code Playgroud)

  • 'event'是资源路径中的参数名称,你可以用`php artisan route:list`看到它们因为像@Alexey这样的模型绑定也指向它们 (3认同)

Ale*_*nin 5

更改模型名称以Event使模型绑定工作.

由于$user变量是类型提示为App\UserEloquent模型且变量名称与{user}URI段匹配,因此Laravel将自动注入具有与请求URI中的相应值匹配的ID的模型实例