hier simple_array MySQL gewählt sparen ist die Situation:Symfony3.0.3 Choice unter Entität Einträge über Kontrollkästchen wählen und die
- ich das Entity haben
jobtypes
diename
unddescription
Felder enthält - Ich mache Registrierungsformular und der Benutzer, der sich registriert, soll in der Lage sein, unter den
jobtypes
Einträgen mit ihrem Namen zu wählen. So weit so gut - Ich möchte die verfügbaren Optionen (
jobtypes
Einträge) durch Checkboxen auflisten, so dass der Benutzer einen oder mehrere wählen und dann die überprüften zu einem simple_array-Typ in MySQL speichern kann. - Ich baue das Formular
Symfony 3.0.3
Das Problem mit:
Alles sieht gut aus, bis ich die Datenbank überprüfen. Die ausgewählten Jobtypen werden nicht mit den Namen angezeigt, sondern mit einem seltsamen Pfad?
Beispiel:
Ich will 'name1', 'name2', .....
ich Lehre \ Common \ Collections \ Arraycollection @ 0000000010bec20a0000000010aaccb8
Die Frage
Wie soll ich bauen mein -> add() - Feld in Symfony, um dies zu tun?
Dies ist, was ich bisher haben
->add('interestedin', CollectionType::class, array(
'entry_type'=>ChoiceType::class, array(
'expanded'=>true,'multiple'=>true,'choices'=>array(
'class'=>'AppBundle\Entity\jobtypes','choice_label'=>'name'))))
dies ist, wie ich die Daten
$interestedin = array();
$interestedin[] = $form['interestedin']->getData();
bekommen und wie ich stellte es auf ein Objekt
$sprovider->setInterestedin($interestedin);
sprovider.php
/**
* @var array
*
* @ORM\Column(name="interestedin", type="simple_array")
*/
private $interestedin;
ich an nichts anderes denken können Sie zeigen, dass Sie meine Frage beantworten könnte helfen. Wenn es etwas gibt, was ich verpasst habe, sag es bitte.
EDIT
wenn ich {{ dump(sprovider.interestedin) }}
i
array(1) { [0]=> object(Doctrine\Common\Collections\ArrayCollection)#489 (1) { ["elements":"Doctrine\Common\Collections\ArrayCollection":private]=> array(2) { [0]=> object(AppBundle\Entity\jobtypes)#482 (3) { ["id":"AppBundle\Entity\jobtypes":private]=> int(1) ["name":"AppBundle\Entity\jobtypes":private]=> string(15) "Kitchen Fitting" ["description":"AppBundle\Entity\jobtypes":private]=> string(32) "Building a kitchen from scratch." } [1]=> object(AppBundle\Entity\jobtypes)#487 (3) { ["id":"AppBundle\Entity\jobtypes":private]=> int(2) ["name":"AppBundle\Entity\jobtypes":private]=> string(16) "Bathroom Fitting" ["description":"AppBundle\Entity\jobtypes":private]=> string(24) "Rennovate your bathroom." } } } }
bekommen glaube ich nur die Namen der Arbeitsplätze in $interestedin
nicht bin immer, aber die ganzen Einträge. Hoffe das hilft ein bisschen.
Ich bin ziemlich neu, also könnten Sie bitte ein Beispiel dafür geben? Ich meine die ManyToMany-Beziehung, die Controller-Einstellung und die Zweig-Implementierung. Vielen Dank –