如何获取我的函数使用的页面?

时间:2015-02-12 12:08:12

标签: php controller blogs silverstripe

Silverstripe:我的页面上有一个博客,其中包含多个页面,每页有10个条目。 我希望我的控制器知道当前正在查看哪个博客页面。

我有以下代码:

public function dependsOnPage() {

    $page = getPageHere; /*How can I get which page of the blog I'm currently on?*/

    $i = ($page*10)-10;

    echo $i;    
}

第二页上的URL看起来像这样:例如:?start = 10 在第三个像这样?start = 20

有没有人知道我如何在Silverstripe中做到这一点?

我试过了:

    //echo SiteTree::get_by_link('news')->Link();

    //echo (Director::urlParam());

    //echo Director::getCurentPage();

    echo Director::get_current_page();

    echo Director::baseURL();

    $test = $_GET['url'];
    echo $test;

    echo $this->request->param('ID');

    // echo Director::absoluteURL('', false);

    //echo $this->getCurentPage();

    //echo $this->request->param() ;

    //echo $this->URLSegment;

    //echo Director::absoluteBaseURL();

    //echo $this->param();

    //echo $this->getURLParams();

    //echo SS_HTTPRequest->param();

解决方案:

$ urlParam = Controller :: curr() - > getRequest() - > getVar(' start');

1 个答案:

答案 0 :(得分:3)

我们可以在SS_HTTPRequest对象上检索带有一些函数的Post和Get变量。我们可以从Controller获取SS_HTTPRequest对象。

SS_HTTPRequest有一个函数getVar($variableName)来检索Get变量。

如果您的功能在控制器中,您可以拨打以下内容获取$_GET变量:

$startValue = $this->getRequest()->getVar('start');

如果您的函数在对象类中,首先需要获取页面控制器,然后才能获得$_GET变量:

$startValue = Controller::curr()->getRequest()->getVar('start');