Illuminate\Routing\Controller
?Illuminate\Routing\Controller
的简单控制器类,会发生什么?Illuminate\Routing\Controller
有什么好处?示例:
use Illuminate\Routing\Controller as BaseController;
class Controller extends BaseController
{
}
class UserController extends Controller
{
public function show($id)
{
// ...
}
}
Route::get('user/{id}', 'UserController@show');
VS
class Controller
{
}
class UserController extends Controller
{
public function show($id)
{
// ...
}
}
Route::get('user/{id}', 'UserController@show');
答案 0 :(得分:0)
检查以下问题的答案
扩展基本控制器不是必须的。无需扩展基本控制器即可正常工作。
它会照常工作而不会产生任何问题,会显示您的预期结果。
它将为您的简单控制器带来许多好处。始终建议使用基本控制器。它包含很多内容,如中间件
public function middleware($middleware, array $options = [])
{
foreach ((array) $middleware as $m) {
$this->middleware[] = [
'middleware' => $m,
'options' => &$options,
];
}
return new ControllerMiddlewareOptions($options);
}
魔法
public function __call($method, $parameters)
{
throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].');
}
只需探索该课程,您就可以完全了解在扩展课程后您可以做些什么。
答案 1 :(得分:0)
根据Laravel的官方文档,不需要控制器来扩展基类。但是,您将无法使用便捷功能,例如middleware
,validate
和dispatch
方法。
参考:https://laravel.com/docs/6.x/controllers#defining-controllers