affichage de nombres avec décimales
Bonjour,
C'est un vrai casse tête pour moi, impossible d'afficher les décimales des nombres.
Entité fourniture, montant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
/**
* @ORM\Column(type="decimal", precision=12, scale=2)
* @Assert\GreaterThan(
* value = 0,
* message="Le montant doit être supérieur à zéro"
* )
* @Assert\NotBlank(message="Vous devez saisir un montant")
*
*
*/
private $montant; |
mon controller :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
/**
* @Route("/fourniture", name="fournitures_voir")
*/
public function fournitures_voir(FournitureRepository $em, Request $request)
{
// On récupère le chantier par la session
$session = $request->getSession();
$chantier = $session->get('Chantier');
// Liste des fournitures du chantier à afficher en partie basse
$listFournitures = $em->findBy(
array('chantier' => $chantier)
);
dump($listFournitures);
return $this->render('fourniture/afficherFournitures.html.twig', [
'fournitures' => $listFournitures,
'chantier' => $chantier
]);
} |
Le dump fait bien apparaitre des montants avec des décimales
afficherFournitures.html.twig avec le montant formaté. Mais les valeurs sont affichées avec des décimales à 00. Si le montant en base vaut 9.99, il est affiché 9.00
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
{% extends '/chantier/detailsChantier.html.twig' %}
{% block bas %}
{% block creation %}
<div class="container">
<a href="{{ path('fourniture_creer') }}" class="btn btn-success" role="button">Créer une dépense</a>
<p></p>
</div>
{% endblock %}
<div class="container">
<table class="table table-bordered">
<thead>
<tr>
<th>Prestation</th>
<th>Date de la prestation</th>
<th>Montant</th>
<th>Commentaire</th>
<th></th>
</tr>
</thead>
<tbody>
{% for Fourniture in fournitures %}
<tr>
<td><a href="{{ path('fourniture_modifier', {'id': Fourniture.id}) }}"> {{ Fourniture.prestation.libelle }} </a></td>
<td>{{ Fourniture.datePrestation | date('d/m/Y') }}</td>
<td>{{ (Fourniture.montant)|number_format(2, '.', ' ') }}</td>
<td>{{ Fourniture.commentaire }}</td>
</tr>
{% else %}
<td>Pas (encore !) de dépenses</td>
{% endfor %}
</tbody>
</table>
</div>
{% endblock %}
{% block javascripts %}
{% endblock %} |
Dans mon formulaire de création, j'ai le même problème, le montant affiché est alors 9
FournitureType.php (j'ai testé tous les types pour montant)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
<?php
namespace App\Form;
use App\Entity\Fourniture;
use App\Entity\Prestation;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\MoneyType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
class FournitureType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('montant', TextType::class)
->add('commentaire', null, array(
'label' => 'Commentaire détaillant la nature de la prestation'
))
->add('prestation', EntityType::class, [
'class' => Prestation::class,
'choice_label' =>'libelle'])
->add('datePrestation', null, array(
'widget' => 'single_text',
'label' => 'Date de la prestation'
))
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Fourniture::class,
]);
}
} |
et son formulaire associé qui affiche 9
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
{% extends "fourniture/afficherFournitures.html.twig" %}
{% form_theme formFourniture 'bootstrap_4_layout.html.twig' %}
{% block creation %}
<div class="container">
{% if editMode %}
<h2>Modification d'une dépense</h2>
{% else %}
<h2>Création d'une dépense</h2>
{% endif %}
<p></p>
{{ form_start(formFourniture, {'attr': {'novalidate': 'novalidate'}}) }}
{# {{ form_widget(formFourniture) }} #}
<div class="row">
<div class="col-md-4">{{ form_row(formFourniture.prestation) }}</div>
<div class="col-md-4">{{ form_row(formFourniture.montant) }} </div>
<div class="col-md-4">{{ form_row(formFourniture.datePrestation) }}</div>
</div>
{{ form_row(formFourniture.commentaire, {'attr':{'placeholder': "Commentaire"}}) }}
<button type="submit" class="btn btn-success">
{% if editMode %}
Modifier la dépense
{% else %}
Ajouter la dépense
{% endif %}
</button>
<a href="{{ path('fournitures_voir') }}" class="btn btn-secondary" role="button">Annuler</a>
{{ form_end(formFourniture) }}
<p></p>
</div>
{% endblock %} |
Il semble que mon problème concerne toutes formes d'affichage de nombres avec décimales.
J'ai du rater quelque chose quelque part.
Merci d'avance pour votre aide