IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Internal Server Error Expected argument of type "string", "null" given at property path "image".


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2020
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2020
    Messages : 23
    Points : 9
    Points
    9
    Par défaut Internal Server Error Expected argument of type "string", "null" given at property path "image".
    Bonjour
    j'ai une erreur au niveau de mon image ! quand je veux modifier un car et je clique sur modifier , supprimer ou enregistrer , il ya cette erreur qui apparait
    voici mon entité car
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
     
     
    <?php
     
    namespace App\Entity;
     
    use App\Repository\CarRepository;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\HttpFoundation\File\File;
    use Vich\UploaderBundle\Mapping\Annotation as Vich;
     
    /**
     * @ORM\Entity
     * @Vich\Uploadable
     * @ORM\Entity(repositoryClass=CarRepository::class)
     */
    class Car
    {
        /**
         * @ORM\Id
         * @ORM\GeneratedValue
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\Column(type="string", length=100)
         */
        private $brand;
     
        /**
         * @ORM\Column(type="integer")
         */
        private $year;
     
        /**
         * @ORM\Column(type="integer")
         */
        private $price;
     
        /**
         * @ORM\Column(type="string", length=100)
         */
        private $image;
        /**
         * @Vich\UploadableField(mapping="car_images", fileNameProperty="image")
         * @var File
         */
        private $imageFile;
     
        /**
         * @ORM\Column(type="boolean")
         */
        private $isNew;
     
        public function getId(): ?int
        {
            return $this->id;
        }
     
        public function getBrand(): ?string
        {
            return $this->brand;
        }
     
        public function setBrand(string $brand): self
        {
            $this->brand = $brand;
     
            return $this;
        }
     
        public function getYear(): ?int
        {
            return $this->year;
        }
     
        public function setYear(int $year): self
        {
            $this->year = $year;
     
            return $this;
        }
     
        public function getPrice(): ?int
        {
            return $this->price;
        }
     
        public function setPrice(int $price): self
        {
            $this->price = $price;
     
            return $this;
        }
     
        public function getImage(): ?string
        {
            return $this->image;
        }
     
        public function setImage(string $image): self
        {
            $this->image = $image;
     
            return $this;
        }
     
        public function setImageFile(File $image = null)
        {
            return $this->imageFile = $image;
        }
     
        public function getImageFile()
        {
            return $this->imageFile;
        }
     
        public function getIsNew(): ?bool
        {
            return $this->isNew;
        }
     
        public function setIsNew(bool $isNew): self
        {
            $this->isNew = $isNew;
     
            return $this;
        }
    }
    car 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
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
     
    <?php
     
    namespace App\Controller;
     
    use App\Entity\Car;
    use App\Form\CarType;
    use App\Repository\CarRepository;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
     
    /**
     * @Route("/car")
     */
    class CarController extends AbstractController
    {
        /**
         * @Route("/", name="car_index", methods={"GET"})
         */
        public function index(CarRepository $carRepository): Response
        {
            return $this->render('car/index.html.twig', [
                'cars' => $carRepository->findAll(),
            ]);
        }
     
        /**
         * @Route("/new", name="car_new", methods={"GET","POST"})
         */
        public function new(Request $request): Response
        {
            $car = new Car();
            $form = $this->createForm(CarType::class, $car);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->persist($car);
                $entityManager->flush();
     
                return $this->redirectToRoute('car_index');
            }
     
            return $this->render('car/new.html.twig', [
                'car' => $car,
                'form' => $form->createView(),
            ]);
        }
     
        /**
         * @Route("/{id}", name="car_show", methods={"GET"})
         */
        public function show(Car $car): Response
        {
            return $this->render('car/show.html.twig', [
                'car' => $car,
            ]);
        }
     
        /**
         * @Route("/{id}/edit", name="car_edit", methods={"GET","POST"})
         */
        public function edit(Request $request, Car $car): Response
        {
            $form = $this->createForm(CarType::class, $car);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                $this->getDoctrine()->getManager()->flush();
     
                return $this->redirectToRoute('car_index');
            }
     
            return $this->render('car/edit.html.twig', [
                'car' => $car,
                'form' => $form->createView(),
            ]);
        }
     
        /**
         * @Route("/{id}", name="car_delete", methods={"DELETE"})
         */
        public function delete(Request $request, Car $car): Response
        {
            if ($this->isCsrfTokenValid('delete'.$car->getId(), $request->request->get('_token'))) {
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->remove($car);
                $entityManager->flush();
            }
     
            return $this->redirectToRoute('car_index');
        }
    }
    carType
    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
     
     
    <?php
     
    namespace App\Form;
     
    use App\Entity\Car;
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolver;
    use Vich\UploaderBundle\Form\Type\VichImageType;
     
    class CarType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('brand')
                ->add('year')
                ->add('price')
                ->add('imageFile',VichImageType::class)
                ->add('isNew')
            ;
        }
     
        public function configureOptions(OptionsResolver $resolver)
        {
            $resolver->setDefaults([
                'data_class' => Car::class,
            ]);
        }
    }
    carFilterType
    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
    46
    47
    48
    49
    50
    51
     
     
    <?php
     
    namespace App\Form;
     
    use App\Entity\Car;
    use App\Form\CarType;
    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
    use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
    use Symfony\Component\Form\Extension\Core\Type\IntegerType;
    use Symfony\Component\Form\Extension\Core\Type\TextType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolver;
     
    class CarFilterType extends AbstractType
    {
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
            ->add('brand', TextType::class, [
                'required' => false
            ])
            ->add('year', IntegerType::class, [
                'required' => false
            ])
            ->add('price', IntegerType::class, [
                'required' => false
            ])
            ->add('image', TextType::class, [
                'required' => true
            ])
            ->add('isNew', ChoiceType::class, [
                'choices' => [
                    'yes' => 'yes',
                    'no' => 'no'
                ],
                'required' => false
            ])
        ;
     
        }
     
        public function configureOptions(OptionsResolver $resolver)
        {
            $resolver->setDefaults([
                'data_class' => Car::class,
            ]);
        }
    }

    Je vous remercie de votre aide

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Salut,

    Dans ton filtre tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            ->add('image', TextType::class, [
                'required' => true
            ])
    mais dans ton form il n'est pas présent est donc jamais affiché je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            $builder
                ->add('brand')
                ->add('year')
                ->add('price')
                ->add('imageFile',VichImageType::class)
                ->add('isNew')
    Pourtant dans ton entité ce champ ne peut pas être null.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/10/2017, 14h10
  2. Réponses: 5
    Dernier message: 04/04/2014, 13h55
  3. Réponses: 0
    Dernier message: 01/06/2012, 15h40
  4. Status: 500 Internal Server Error Content-Type: text/html
    Par hackiles dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 22/01/2008, 21h33
  5. [RegEx] [regex][serveur] Internal server error
    Par Maxoo dans le forum Langage
    Réponses: 8
    Dernier message: 29/12/2004, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo