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');
答案 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');