ZF2 - set gewählte Wert am Select-Element
Ich habe ein problem mit dropdown-Liste mit Zend Framework 2 & Lehre.
Ich würde die "selected" - Attribut auf mein dropdown-Liste, aber alle Optionen pass auf ausgewählte
Mein code :
Controller :
public function editAction()
{
//get error message during addAction
$this->layout()->setVariable("messageError", $this->flashMessenger()->getErrorMessages());
$auth = $this->getAuthService();
if ($auth->hasIdentity()){
$builder = new AnnotationBuilder();
//Get id of StaticContent
$id = (int)$this->getEvent()->getRouteMatch()->getParam('id');
if (!$id) {
$this->flashMessenger()->addErrorMessage("Aucun plan choisi !");
return $this->redirect()->toRoute('admin/plans');
}
$plan = $this->getEntityManager()->getRepository("Admin\Entity\Plan")->find((int)$id);
$form = $builder->createForm($plan);
//Find options for Localite list (<select>)
$localites = $this->getEntityManager()->getRepository("Admin\Entity\Localite")->getArrayOfAll();
$form->get('localiteid')->setValueOptions($localites);
$form->get('localiteid')->setValue("{$plan->getLocaliteid()->getId()}");
//Find options for TypePlan list (<select>)
$typesPlan = $this->getEntityManager()->getRepository("Admin\Entity\TypePlan")->getArrayOfAll();
$form->get('typeid')->setValueOptions($typesPlan);
$form->get('typeid')->setValue("{$plan->getTypeid()->getId()}");
//Options for Statut list (<select>)
$form->get('statut')->setValueOptions(array('projet'=>'Projet', 'valide'=>'Validé'));
$form->get('statut')->setValue($plan->getStatut());
$form->setBindOnValidate(false);
$form->bind($plan);
$form->add(array(
'name' => 'submit',
'attributes' => array(
'type' => 'submit',
'value' => 'Modifier',
'id' => 'submitbutton',
'class' => "btn btn-primary"
),
));
$request = $this->getRequest();
if ($request->isPost()) {
[...]
}
}
Mit
$localites = $this->getEntityManager()->getRepository("Admin\Entity\Localite")->getArrayOfAll();
$form->get('localiteid')->setValueOptions($localites);
ich füllen mein dropdown-richtig, in der Regel mit
$form->get('localiteid')->setValue("{$plan->getLocaliteid()->getId()}");
nur einstellen "aktiviert" - option definiert durch :
$plan->getLocaliteid()->getId()
Also warum sind alle Optionen markiert, die in meinem dropdown ?!
Informationen : Es ist das gleiche für den typeId-aber kein Statut
InformationsquelleAutor RudySkate | 2013-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es wahrscheinlich nicht funktionieren, weil der geschweiften Klammern. Nach der PHP Dokumentation
Dies ist auch überflüssig, wenn setValue. ZF2 wird es in einen string konvertieren, wenn die Formatierung in der Ansicht.
Beim erstellen des arrays übergeben setValueOptions() Sie sollte ein assoziatives array von arrays, die mit den folgenden Werten:
Denen immer der Felder der ausgewählten option auf true gesetzt, wird die Standard-Auswahl in das Formular-element.
InformationsquelleAutor Adrian
Ich persönlich weiß nicht, ob getArrayOfAll() eine solche Funktion existiert, gehe ich davon aus, dass Sie korrekt übergeben array zu BILDEN,
Ich denke, Sie sollten etwas tun, wie dieser Wert festgelegt.
Aber Da Sie das Auffüllen der DROP-down-ich denke, dieser Ansatz wird nicht funktionieren, am besten mit Drop-Down. Müssen Sie etwas tun, wie dieses
InformationsquelleAutor noobie-php
Habe ich einen bug gefunden ?!
Wenn ich mit
$plan->getLocaliteid()->getId();
oder$plan->getTypeid()->getId()
übergeben parameter in Repository-MethodegetArrayOfAll($idLocalite)
LocaliteRepository.php :
}
So, wenn ich mit
$idLocalite = 18
statt$idLocalite = (int)$plan->getLocaliteid()->getId()
wollte nur option ausgewählt werden. Warum ?!InformationsquelleAutor RudySkate