Yii dropdownlist mit $Formular-> dropdownlist
ich soll ein Formular erstellen, die aus 2 verschiedenen Modellen,
1. ist für die Länder, und die 2. ist für Dokumente.
Das problem ist, dass ich nicht machen Sie eine dropdown-Liste, bekomme ich den Fehler die ganze Zeit.
Hier ist der code, zuerst mein controller.php Teil
$model = new Country;
$model2 = new Product;
$this->performAjaxValidation(array($model, $model2));
if(isset($_POST['Country'],$_POST['Product']))
{
//populate input data to $model and $model2
$model->attributes=$_POST['Country'];
$model2->attributes=$_POST['Product'];
//validate BOTH $model and $model2
$valid=$model->validate();
$valid=$model2->validate() && $valid;
if($valid)
{
//use false parameter to disable validation
$model->save(false);
$model2->save(false);
$this->redirect('index');
}
}
...
$countriesIssued = Country::model()->findAll(array('select'=>'code, name', 'order'=>'name'));
...
$this->render('legalisation', array('model'=>$model, 'model2'=>$model2, 'documents'=>$documents, 'countriesIssued'=>$countriesIssued, 'countries'=>$countries, 'flag'=>$flag));
}
In meinem view-script, das ich verwenden Sie diesen code
<?php $form = $this->beginWidget('CActiveForm', array(
'id'=>'user-form',
'enableAjaxValidation'=>true,
)); ?>
<?php echo $form->errorSummary(array($model,$model2)); ?>
<?php echo $form->dropDownList($model, 'countriesIssued',
CHtml::listData($countriesIssued, 'code', 'name'));?>
<?php $this->endWidget(); ?>
aber ich bekomme diese Fehlermeldung :
Eigenschaft "Land.countriesIssued" ist nicht definiert.
Ok es ist nicht definiert, ich versuche es zu ändern 'countriesIssued', dann bekam ich eine andere Fehlermeldung besagt, dass Invalid argument für foreach geliefert() .
Wenn jemand mir helfen kann, bitte.
Ich weiß, dass es mehr Lösungen, die auf net, ich probiere es aber nicht verstehen, Danke.
countriesissued
ist kein array, sondern eine Objekt.Das ist, warum Sie bekam invalid argument Fehler.verwenden Sie stattdessen die folgende Lösung von mir gegeben.
InformationsquelleAutor 5ome | 2013-06-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Per definition der erste param von listData ist ein array; Ihr ist ein Objekt;
ok, i get it, <?php $countriesList = CHtml::listData($countriesIssued, 'code', 'name');?> <?php echo $Formular->dropDownList($model, 'code', CHtml::listData(Land::model()->findAll(), 'code', 'name'), $countriesList);?>
Warum
$countriesList
. Dies ist nutzlos, in diesem code,Statt echo wie dieses.$form->dropDownList($model, 'code', CHtml::listData(country::model()->findAll(), 'code', 'name'),array('empty'=>'Select Country'));
InformationsquelleAutor Ionut Flavius Pogacian
Machen Sie eine Liste mit Variablen wie diese:
In Ihrem Modell:
Und in Ihrem Blick:
Sie können es in Ihren controller auch...bin nur auf der Durchreise ein einfacher Weg, dies zu tun.
ok, nochmals vielen Dank.
dies ist ok, _form.php und was ist zu tun view.php? Wie echo der ausgewählte Wert ?
InformationsquelleAutor Sudhanshu Saxena
dropDownList($model,'Status',array('1' => 'Do 1', '2' =>', 2'),array('selected' => 'Wählen')); ?>
Oder Yii 2
Feld($model,'Staat')->dropDownList(
array('1' => 'Do 1','0' =>', 2'),array('options' => array('0' => array('selected' => true))))
->label ("Zustand")
?>
InformationsquelleAutor Jair