Redirect Silverstripe 3.4临时页面取决于日期

Redirect Silverstripe 3.4临时页面取决于日期,redirect,infinite-loop,silverstripe,Redirect,Infinite Loop,Silverstripe,我想根据开始日期和结束日期显示我的临时页面 我用canView函数来管理它 最后一个if语句中的“return false”使我进入登录页面 控制器::curr()->重定向(Director::baseURL())会导致无限循环 重定向到主页(主页)而不结束的正确语法是什么 循环 class TempPage扩展页面{ 公共函数canView($Member=null){ $now=日期('Y-m-d H:i:s'); if(权限::checkMember($Member,'CMS_ACCES

我想根据开始日期和结束日期显示我的临时页面

我用canView函数来管理它

最后一个if语句中的“return false”使我进入登录页面

控制器::curr()->重定向(Director::baseURL())会导致无限循环

重定向到主页(主页)而不结束的正确语法是什么 循环

class TempPage扩展页面{
公共函数canView($Member=null){
$now=日期('Y-m-d H:i:s');
if(权限::checkMember($Member,'CMS_ACCESS')){
返回true;
}elseif($now>$this->StartDate&&$now<$this->EndDate){
返回true;
}否则{
返回false;
控制器::curr()->重定向(Director::baseURL());
}
}

一般来说,我建议在github.com/silverstripe-scienceninjas/embargoexpiry上查找“显示我的…取决于开始日期和结束日期”,因为特定的“Controller::curr()->重定向(Director::baseURL())会导致无限循环”这将是最好的调试,因为有很多信息丢失:什么是请求的url?什么是“主页”?是.htaccess标准?等等…我将改为重定向到404…返回$this->httpError(404,“未找到”);或者为“临时页面因日期而不可用”创建一个特定页面在else子句中返回false后,重定向将不起作用。使用适当的step调试器(如xdebug)很容易找到这种错误。@wkm:如果您仔细阅读我的问题,您会发现它是关于重定向到主页(BaseUrl)的.return false重定向到登录。很明显,在返回false之后,什么也不会发生。但正如我的问题“Controller::curr()中提到的那样->“…”生成一个循环。我尝试了两种方法;每种方法都有自己的作用。应该清楚的是:TempPage应该在CMS中可见,但如果日期超出范围,则在前面的导航中不可见。这就是为什么我称它为TempPage。
    class TempPage extends Page {

public function canView($Member = null){
    $now  = date('Y-m-d H:i:s');
    if(Permission::checkMember($Member, 'CMS_ACCESS')){
        return true;
    }elseif($now > $this->StartDate &&  $now < $this->EndDate){
        return true;
    }else{
        return false;
        Controller::curr()->redirect(Director::baseURL());
    }
}