2017-09-14 72 views
1

我们可以在构造函数代码中使用重定向或返回吗?我相信,如果我们返回一些东西或在构造函数中使用重定向,它不会抛出任何错误,但不要认为这是正确的方法。 例如,如果我谈论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

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

如果你想做一些类似于管理员检查的事情,你可以创建自己的中间件。欲了解更多信息,请查看以下link

+0

好吧,如果我用这个像: '公共职能__construct(){$ 这 - > adminAuthorization();如果(!Auth :: check()){ }重定向::到('admin') - > send(); } }' 这个工作吗? @markwalet – Manu

+0

这仍然是完全一样的。你从构造函数执行相同的代码。我真的会建议你使用中间件。但是,代码风格总是有争议的。 –