informer07
(Adriankosciuk)
March 12, 2016, 1:52pm
1
Cześć. Mam taki kod w swoim kontrolerze, który wyświetla mi tablicę lat:
public static function getYears() {
$nowYear = date("Y");
$i = 0;
for ($yearNum = 2010; $yearNum <= $nowYear; $yearNum++) {
$year[] = $yearNum;
$i++;
if ($i == 3)
break;
}
return $year;
}
Tablicę przekazuję do indexu i wyświetlam tam listę lat.
Lata wyświetlam w pętli foreach w index:
<?php foreach ($years as $year): ?>
<div class="">
<?= $year; ?><br>
</div>
<?php endforeach; ?>
<?= Html::a(Yii::t('app', 'Następny rok'), ['index'], ['class' => 'btn btn-primary']) ?>
rob006
March 12, 2016, 2:09pm
2
<?= Html::a(Yii::t('app', 'Następny rok'), ['index', 'start_year' => $years[0] + 1], ['class' => 'btn btn-primary']) ?>
W kontrolerze wykorzystujesz zmienna $_GET do ustalenia startowego roku. Metoda generująca listę lat zrobiłbym tak:
public static function getYears($start_year) {
$maxYear = $start_year + 6; // 6 to zakres, pewnie powinieneś go ustalić samodzielnie
$i = 0;
for ($yearNum = $start_year; $yearNum <= $maxYear; $yearNum++) {
$year[] = $yearNum;
$i++;
if ($i == 3)
break;
}
return $year;
}
informer07
(Adriankosciuk)
March 12, 2016, 3:01pm
3
dzięki za odpowiedź, tylko teraz muszę jeszcze przekazać argument do zmiennej $year do indexu:
public function actionIndex() {
return $this->render('index', [
'years'=>$this->getYears($_GET['start_year'])
]);
}
'years'=>$this->getYears(nie mam pomysłu co wpisać)
podpowiesz? byłbym wdzięczny
rob006
March 12, 2016, 3:31pm
4
'years'=>$this->getYears(isset($_GET['start_year']) ? $_GET['start_year'] : 2010)
?
Nie rozumiem do końca o co ci chodzi.
informer07
(Adriankosciuk)
March 12, 2016, 3:47pm
5
wow, dzięki wielkie za pomoc życzę miłego weekendu dobry człowieku