我在Kohana 3.3有一个项目。 我有很多控制器,模型等。
现在,我想添加一项功能 - 为所有用户关闭整个网站。
我可以添加功能,例如,将用户重定向到http://mypage.com/website_is_close?
示例:
function check(){
$isClose = DB::query(.....)
if($isClose) header("Location: http://mypage.com/website_is_close");
return false;
}
谢谢:)
答案 0 :(得分:2)
在Controller_Base
中,所有其他控制器都从。 E.g。
文件应用程序/ classes / Controller / Base.php
class Controller_Base extends Controller_Template {
public function before()
{
$isClose = DB::query(.....)
if($isClose)
{
HTTP::redirect("http://mypage.com/website_is_close");
exit ;
}
parent::before();
}
}
所有其他类应该从该类扩展,例如
class Controller_Home extends Controller_Base {}
我个人也将此用于每个子目录,例如
// As all controllers in the user folder probably need to be supplied with a user anyway
class Controller_User_Base extends Controller_Base {}
class Controller_User_Profile extends Controller_User_Base {}
答案 1 :(得分:0)
我认为一个更好的方法是添加一个"赶上所有"路线到路线列表的开头。
它会捕获所有URL并指向您要创建的控制器。这比黑客攻击基础控制器要清晰得多。
这看起来如何?
Route::set('closed', '(<url>)', array('url' => '.*'))
->defaults(array(
'controller' => 'Closed',
'action' => 'index',
));