Bonjour,
C'est un vrai casse tête pour moi, impossible d'afficher les décimales des nombres.

Entité fourniture, montant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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