在构造函数中重定向/返回

时间:2017-09-14 06:49:37

标签: php laravel oop redirect constructor

我们可以在构造函数代码中使用重定向或返回吗?我相信,如果我们返回一些内容或在构造函数中使用重定向,它不会抛出任何错误,但不要认为这是一种正确的方法。 例如,如果我谈论laravel MVC

public function __construct() { $this->middleware('auth'); }

这里我已经初始化了auth中间件,但是我想这样做是对的:

public function __construct() {
   $this->middleware('auth');
   if (!Auth::check()) {
       Redirect::to('admin')->send();
   }
}

或者我可以使用以下语句而不是Redirect::to('admin')->send();

return redirect('admin');

abort('404');

或者将这些代码放在构造函数中是不好的做法?任何帮助将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:1)

从我所看到的,这是不好的做法。对于在初始化控制器之前要执行的内容(如授权),您可以使用中间件。

如果您想执行类似管理员检查的操作,则可以创建自己的中间件。有关更多信息,请查看以下link