yii
(jammi )
September 24, 2009, 3:56pm
1
Hi,
ich rufe in meiner View ein Widget folgendermaßen auf.
<?php $this->widget('boxSimilar'); ?>
<?php
class BoxSimilar extends Portlet
{
public $title='BoxSimilar';
protected function renderContent()
{
$this->render('elements/boxSimilar');
}
}
Das Widget wird korrekt ausgeführt, jedoch kann ich an keiner Stelle dem Widget ein Array übergeben. Weder so
$this->widget('boxSimilar', $aTestArray);
noch indem ich die renderContent, so erweitere das sie ein Array annimmt.
Wer kennt einen Trick?
mikl
(Mike)
September 24, 2009, 7:19pm
2
class BoxSimilar extends Portlet
{
public $title='BoxSimilar';
public $meinArray=array(
'bla' => 'Defaultwert',
);
protected function renderContent()
{
$this->render('elements/boxSimilar');
}
}
$this->widget('boxSimilar', array(
'meinArray'=> array(
'bla' => 'Sonstwas',
'xyz' => 123,
),
'title' => 'Spezialbox',
);
yii
(jammi )
September 24, 2009, 7:59pm
3
Vielen Dank, jedoch eine kleine Verbesserung. In der renderContent() muss das Array in render() übergeben werden.
class BoxSimilar extends Portlet
{
public $title='BoxSimilar';
public $meinArray=array(
'bla' => 'Defaultwert',
);
protected function renderContent()
{
$this->render('elements/boxSimilar', array('meinArray' => $meinArray);
}
}
$this->widget('boxSimilar', array(
'meinArray'=> array(
'bla' => 'Sonstwas',
'xyz' => 123,
),
'title' => 'Spezialbox',
);
mikl
(Mike)
September 25, 2009, 7:32am
4
Richtig, allerdings m.E. nur sinnvoll, wenn du meinArray vorher noch irgendwie verarbeiten möchtest. Andernfalls kann man aber im View auch direkt auf $this->meinArray zugreifen (Pull-Verfahren).