【发布时间】:2017-06-22 02:13:56
【问题描述】:
我正在使用 Laravel 开发一个应用程序,同时通过 Laravel 教程来学习这个框架的各个领域。
在 web.php 中,我有一个路由:
Route::get('/events/{event}', 'EventController@show');
在事件控制器中,我有以下内容:
public function show($id) {
$event = Event::find($id);
return $event;
}
而且效果很好。当我尝试将其更改为以下格式以清理代码时:
public function show(Event $event) {
return $event;
}
我收到错误消息:
App\Http\Controllers\EventController::show(App\Event $event) 的声明应该与 App\Http\Controllers\Controller::show($id) 兼容
我做错了什么?
【问题讨论】:
-
您可能正在扩展具有
show方法并具有不同结构的基类。只是不要扩展它或创建另一个方法。 -
EventController 确实扩展了 Controller,但这是 Laravel 安装默认提供的。 laracast (laracasts.com/series/laravel-from-scratch-2017/episodes/9) 尽可能地展示了这一点,似乎没有做任何特别的事情。
-
你解决了吗?否则,您是否在 App\Http\Controllers\Controller 中声明了 show 方法?
-
代码“public function show(Event $event){ ... } 现在按预期工作。但是,我不记得当时我可能做错了什么,如果有的话.
标签: php laravel binding model routes