に適用されます。毎年、私はこのコードしまった配列
/**
* Transforms field value to readable text for listing.
*
* @param string $fieldName
* @param Entity_Topic $entity
* @return string
*/
public function presenter($fieldName, *** $entity) {
$years = range(2014, 2020);
if ('dateFrom' == $fieldName) {
foreach($years as $year) {
$list = array(
$year.'-01-01' => 'Leden '.$year,
$year.'-02-01' => 'Únor '.$year,
$year.'-03-01' => 'Březen '.$year,
$year.'-04-01' => 'Duben '.$year,
$year.'-05-01' => 'Květen '.$year,
$year.'-06-01' => 'Červen '.$year,
$year.'-07-01' => 'Červenec '.$year,
$year.'-08-01' => 'Srpen '.$year,
$year.'-09-01' => 'Září '.$year,
$year.'-10-01' => 'Říjen '.$year,
$year.'-11-01' => 'Listopad '.$year,
$year.'-12-01' => 'Prosinec '.$year,
);
return $list[$entity->getDateFrom()];
}
}
return '';
}
このコードは、2014年のデータのみを示し、他の年はちょうどnullです。任意のアイデアが正しく動作するようにする方法は他の年も表示できますか?
if ('dateFrom' == $fieldName) {
foreach($years as $year) {
$list = array(
***
);
}
return $list[$entity->getDateFrom()];
}
これは、あなたが一つの問題を修正しましたが、1つの以上の問題がまだ残ってます。..
あなた 'return'は' foreach'ループ内である(これは最初のループの後にあることを意味します - 。データが返されますループが次に続行されません値)。 'foreach'ループ内でデータを構築し、' foreach(..){..} 'ブロックの後に**データを'返す 'べきです。 – Dekel
コメントのコードを理解することは不可能です。 – Dekel
'foreach'ループの各繰り返しで' $ list'を上書きしています。 –