html - 在 symfony 和 html 中的 select 中选择默认选择字段
问题描述
在这里,我的数据库中有一个保险表,其中存储了医生可以附属的保险(带有他们的名称和徽标)。现在医生可以在他的医生空间中选择一种、两种或没有保险。但我有一个问题,当医生没有加入任何保险时,我想选择一个默认值表明这个医生还没有保险,但是我选择的不是保险的东西都不生效。
控制器
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 %}
推荐阅读
- python - Spyder 版本 4.2.3 在 Mac、OS Big Sur 上滞后
- plotly - dcc.Graph 子图的 extendData
- regex - 在正则表达式中,是否可以使用变量名而不是纯字符串?
- ruby-on-rails - 如何在 ruby/rails 中做出响应?
- xml - 如何使用 Azure APIM 创建 OCSP 请求并验证响应?
- dom-events - 自定义选项卡关闭时是否会触发任何 JavaScript 事件?
- node.js - 如何使用 vuejs express 和 axios 上传文件
- javascript - 如何在另一个规则集中调用一个规则集?
- google-cloud-platform - 活动的 Google Cloud Scheduler 未触发 PubSub 事件
- javascript - vue.js:模板部分中的处理扩展运算符