0

我在 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;
}

谢谢 :)

4

2 回答 2

2

Controller_Base所有其他控制器中扩展自。例如

文件 application/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 {}
于 2013-08-13T15:56:41.350 回答
0

我认为更好的方法是在您的路线列表的开头添加一条“包罗万象”路线。

它将捕获所有 URL 并指向您将创建的控制器。这比破解基本控制器要干净得多。

这看起来怎么样?

Route::set('closed', '(<url>)', array('url' => '.*'))
->defaults(array(
    'controller' => 'Closed',
    'action' => 'index',
));
于 2013-08-19T00:30:25.893 回答