簡體   English   中英

在 symfony 和 html 中選擇默認選擇字段

[英]Select the default choice field in a select in symfony and html

在這里,我在我的數據庫中有一個保險表,我在其中存儲了醫生可以附屬的保險(帶有他們的名稱和徽標)。現在醫生可以在他的醫生空間中選擇一種、兩種或不選擇保險。但是我有一個問題,當醫生不隸屬於任何保險時,我想選擇一個默認值,表明該醫生還沒有保險,但是我選擇的不是保險的任何東西都不生效。

控制器

public function editAction(Request $request)
{
    $user = $this->getUser();
    if (null === $user) {
        throw new NotFoundHttpException('Utilisateur Inexistant');
    }

    $em             = $this->getDoctrine()->getManager();
    $repo           = $em->getRepository('DoctixMedecinBundle:Medecin');
    $specialiteRepo = $em->getRepository('DoctixAdminBundle:Specialite');

    $cliniqueRepo = $em->getRepository('DoctixAdminBundle:Clinique');

    $assuranceRepo = $em->getRepository('DoctixMedecinBundle:Assurance');

    $object  = $assuranceRepo->findOneBy(['id' => $request->get('assurance')]);
    $medecin = $repo->findOneBy([
        'user' => $user,
    ]);

    if ($request->isMethod('POST')) {
        if ('' != ($pass = $request->get('pass'))) {
            $medecin->getUser()->setSalt('');
            $factory          = $this->get('security.encoder_factory');
            $encoder          = $factory->getEncoder($medecin->getUser());
            $password_encoder = $encoder->encodePassword($pass, $medecin->getUser()->getSalt());
            $medecin->getUser()->setPassword($password_encoder);
        }

        $medecin->setSpecialite($specialiteRepo->find($request->get('specialite')));
        $medecin->setClinique($cliniqueRepo->find($request->get('clinique')));
        $medecin->getUser()->setAdresse($request->get('adresse'));
        $medecin->getUser()->setNumTel($request->get('telephone'));
        $medecin->setQuartier($request->get('quartier'));
        $medecin->setNumOrdre($request->get('numordre'));

        if ($object) {
            $medecin->addAssurance($object);
        }
        $em->persist($medecin);

        $em->flush();

        // redirection avec le status http 301 ::)))))
        $url = $this->generateUrl('medecin_parametre');

        return $this->redirect($url, 301);
    } else {
        return $this->render('DoctixMedecinBundle:Medecin:editProfile.html.twig', [
            'medecin'     => $medecin,
            'specialites' => $specialiteRepo->findAll(),
            'cliniques'   => $cliniqueRepo->findAll(),
            'assurances'  => $assuranceRepo->findAll(),
        ]);
    }
}

枝條

<div class="col-md-6">

  <div class="form-group">
    <label for="assurance" class="control-label">Assurance </label>

    <select id="assurance" class="form-control" placeholder="Assurance" name="assurance" multiple>
      <option value="Pas d Assurance" selected="Pas encore">Pas d'Assurance</option>

      {% for assurance in assurances %}
      <option value="{{ assurance.id }}"
              {% for it in medecin.assurance %}
              {{ it.id== assurance.id ?
      'selected' : '' }}
      {% endfor %} >{{ assurance.nom|upper }}</option>
      {% endfor %}
    </select>

  </div>

</div>

<div class="row">
  <div class="col-md-offset-3 col-md-3">
    <input type="submit" class="btn_1 btn-success medium" form="editProfil" value="Valider">
    <a href="{{ path('medecin_parametre') }}" class=" btn_1 btn-danger medium">Annuler </a>
  </div>
</div>

樹枝視圖將顯示或不顯示醫生所屬的保險

<div class="col-md-6">
  <div class="form-group">
    <label>Vos Assurances</label>
    {% for item in medecin.assurance %}
    {% if item is not empty %}
    <input type="text" class="form-control" readonly
           placeholder="{{ item.nom|upper }} ">
    {% else %}
    <input type="text" class="form-control" readonly
           placeholder="Vous n'avez pas d'assurance ">
    {% endif %}
    {% endfor %}
  </div>
</div>

現在醫生沒有保險的情況下如何顯示無保險的段落? 謝謝。

要檢查葯物是否有任何保證,您必須檢查數組medecin.assurance是否為空

像這樣的東西:

{% if medecin.assurance is empty %}
    {# This medecin has no assurances, act accordingly #}
{% else %}
    {# Display medecin's assurances #}
    {% for item in medecin.assurance %}
        {# Display each assurance #}
    {% endfor %}
{% endif %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM