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’);
Мы можем получить переменные Post и Get с помощью некоторых функций SS_HTTPRequest
объект. Мы можем получить SS_HTTPRequest
объект из нашего Controller
.
SS_HTTPRequest
имеет функцию getVar($variableName)
получить переменные Get.
Если ваша функция находится в вашем контроллере, вы можете вызвать следующие, чтобы получить $_GET
переменные:
$startValue = $this->getRequest()->getVar('start');
Если ваша функция находится в вашем классе объектов, вам сначала нужно получить контроллер страницы, прежде чем вы получите $_GET
переменные:
$startValue = Controller::curr()->getRequest()->getVar('start');
Других решений пока нет …