Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all 1542 articles
Browse latest View live

Pre-remplissage de formulaire et persistance

$
0
0

Bonjour,
Voila, le titre en dis un peu sur mon probleme et je cherche quelques bonnes âmes pour m'aiguiller pour trouver une solution ;)

Ce que je fais

Je cherche a faire plusieurs choses en meme temps parce que je n'ai qu'un seul formulaire de validation.

Je recupere un tableau d'un traitement précédent. Ce tableau doit me servir à pre-remplir mon formulaire mais je n'arrive a faire parvenir mes infos dans mon formulaire.

Voici le tableau devant servir au remplissage du formulaire:

array:5 [▼
  "truc" => array:35 [▶]
  "dateDoc" => "11/02/2020"
  "muche" => array:14 [▶]
  "bidule" => array:8 [▼
    9 => array:6 [▼
      "annee" => "1988"
      "debut" => "01/01"
      "fin" => "30/03"
      "naturePeriode" => "Ville de Nantes "
      "points" => "3"
      "surplus" => "167"
    ]
    10 => array:6 [▶]
    11 => array:6 [▶]
    12 => array:6 [▶]
    13 => array:6 [▶]
    14 => array:6 [▶]
    15 => array:1 [▶]
    "numero" => "0123DFG0123"
  ]
  "berk" => array:23 [▶]
]

Voici mon formType:

class RecuperationType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            //pour faire la liaison entre etudie et indiv
            ->add('etudie', EtudieType::class, [
                'data' => $options['etudie'],
            ])

            // creer le indiv
            ->add('indiv', IndivType::class)

            // mettre un addEventListener pour le creer apres le indiv et recup id indiv
            ->add('carr', CarrType::class)

             // mettre un addEventListener pour le creer apres le carr et recup id carr
            ->add('infoCarr', InfoCarrType::class)

             // mettre un addEventListener pour le creer apres le infoCarr et recup id infocarr
            ->add('point', PointType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'etudie' => EtudieType::class
        ]);
    }
}

Ce que je veux

Avec le tableau, je dois faire plusieurs choses dans le formulaire:
1- recuperer les grand sous-ensembles (comme "truc" ou "muche")
2- recuperer les info des sous-ensembles pour en faire l'affichage (souvent sur plusieurs lignes)
Grosso-modo, il va y avoir plusieurs lignes dans chaque sous-ensemble
Par exemple:
sous-ensemble "Truc" va contenir plusieurs lignes identiques (année / debut / fin / naturePeriode / etc...)

Ce que j'obtiens

Pour le moment je n'obtiens que mon formulaire vide. J'ai bien vu dans la doc Symfony le Data Mapper mais je n'arrive pas a le mettre en place.

Merci par avance de m'avoir lu et de votre aide ;)


Afficher une liste des thèmes parent/enfants

$
0
0

Bonjour,

Je me suis mis à Symfony il y a peu et je galère encore.
J'ai une entité Theme avec un champs "parent". Seul un seul theme, "racine", créée avec une dataFxture, n'a pas de parent. Tous les autres thèmes héritent soit de "racine" soit d'un autre theme.

J'aimerai simplement arriver à afficher mes themes comme ça:

racine
    - Theme 1
        -- Theme 7
        -- Theme 6
    - Theme 3
        -- Theme 5
        -- Theme 2
    - Theme 4

Vous voyez l'idée, c'est juste mettre les themes par ordre alphabetique avec leur sous-theme etc.
Après, il me faudra faire pareil dans un select mais la deuxième étape.

Pour le moment, j'ai juste fait un ->findAll() et j'ai la liste brute, non ordonnée.

Ca parrait tout con mais je bloque... HELP :)

personnaliser knp_paginator symfony 4

$
0
0

Bonjour,

je souhaite afficher que les quelques premiere numero de page puis des pointillé et garder derniere page sur knp_paginator symfony 4
Merci

Quelle convention de nommage (Query builder de mongodb)

$
0
0

Bonjour,

Je me pose une question sur les conventions de nommage au niveau du Query Builder de l'ODM de Mongodb.

Quand je mets les annotations lors de la déclaration d'une variable, j'écris mes variables en camelCase, mais j'écris en snake_case le nom des champs au niveau de Mongo.

    /** @ODM\Field(type="string", name="name_convention) */
    private $nameConvention;

Lorsque je créé ma requète au niveau du Query Builder, j'utilise généralement l'écriture que j'ai choisi pour la base de donnée.

 public function match(Builder $qb)
    {
        $qb->field('name_convention')->equals($this->criteria->nameConvention);
    }

Mais j'ai remarqué que je pouvait aussi utiliser celle de ma variable : $qb->field('nameConvention') , cela fonctionne bien.

J'ai regardé dans la documentation de l'ODM, mais impossible de mettre la main sur la convention d'écritutre conseillée dans ce cas là (et ma base de code étant importante, j'aimerai m'y prendre correctement le plus tôt possible).

Je vous remercie d'avance.

Greg

Symfony console aborte automatiquement

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code. dans la partie d'octrine orm
je peux pas creer des entity puis il y pas de console interractive

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

Entourez votre code pour bien le mettre en forme
symfony console make:entity Pins

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
symfony console make:entity Pins

created: src/Entity/Pins.php
created: src/Repository/PinsRepository.php

Entity generated! Now let's add some fields!
You can always add more fields later manually or by re-running this command.

New property name (press to stop adding fields):

Aborted.

make:entity [-a|--api-resource] [--regenerate] [--overwrite] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] []

exit status 1**

conseil pagination d'une partie d'un formulaire

$
0
0

Bonjour,

Voilà, je rencontre un petit problème avec mon code.

j'ai essayé avec knp-paginator (Mais pas évident de prendre que certains éléments d'un formulaire :O)

Je suis occupé de faire un quiz et pour le moment, j'ai toutes mes questions avec leurs réponses d'afficher.

afficher question par question

Du coup, je souhaite faire une pagination pour afficher question par question avec des boutons suivant ou précédant et sur la dernière son button valider. En pensant qui doit garder toutes les informations répondues par l'utilisateur, car knp-paginator à tendance à réinitialiser des valeurs.

voilà un peu de code:

 $formBuilder = $this->createFormBuilder();
        // ------------------------Ajouter un utilisateur---------------------------------------------------
         if( $this->getUser() ){
            $formBuilder->add('utilisateur', HiddenType::class, [
                    'data'=>$this -> getUser()->getId(),
                ]);
            }
        //ou Creer un utilisateur avec un nouvelle id 
        else{
            $formBuilder->add('anonyme', EmailType::class, [
                'label'=>"Email:"
            ]);
        }
        // ------------------------Ajouter la date courante---------------------------------------------------
        $formBuilder->add('date',HiddenType::class, [
          ]);

        // ------------------------Ajouter une réponse et une question---------------------------------------------------

        $key=1;
        $i=0;
        $t=0;
        $r=0;
        foreach ( $questions as $question)
        {
            // Récupère l'id questionnaire :
            $formBuilder->add('question',HiddenType::class,[
            'data'=>$questionnaire->getId(),
            ]);
            if($tab_type_de_question[$i] ==4 ){        
                $formBuilder->add('reponse'.$r,  ChoiceType::class,[
                    'choices'  => [
                        // $question_array,
                        $tab_reponse[$i],
                    ],
                    'expanded'=> true,
                    //Si multiple = false (radio bouton), = true (checkbox)
                    'multiple'=>true,
                    'label'=>  $key.": ".$tab_question[$i],
                ]);
                $r++;
            }
            elseif($tab_type_de_question[$i] ==3 ){
                $formBuilder->add('reponse'.$r,  ChoiceType::class,[
                    'choices'  => [
                        // $question_array,
                        $tab_reponse[$i],
                    ],
                    'expanded'=> true,
                    //Si multiple = false (radio bouton), = true (checkbox)
                    'multiple'=>false,
                    'label'=>  $key.": ".$tab_question[$i],
                ]);
                $r++;
            }
            else{
                $formBuilder->add('reponseTextarea'.$t, TextareaType::class,[
                    'label'=>  $key.": ".$tab_question[$i],
                    'label_attr'=> ['class'=>'labelTextarea'],
                ]);
                dump($tab_question[$i]);
                $t++;
            }
            $i++;     
            $key++ ;
    }
// ---------------------------------------------------------------------------
        $form2=$formBuilder->getForm();
        $form2->handleRequest($request);

et la vue :

{{ form_start(form2) }}
            {{ form_widget(form2) }}
                <div class="centerbtn">
                     <button class="btn bleu">{{ button_label|default('Valider') }}</button>

                    <a href="{{ path('home') }}" class="btn orange">Retour</a>
                </div>
        {{ form_end(form2) }}

C'est la partie du formulaire réponse/question que j'aimerais mettre une pagination, mais en cherchant sur plusieurs forums, je ne vois pas comment faire, j'ai pensé au javascript, quand pensez-vous ?

relation ManyToOne

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

``` Mon fichier Property.php
Ent/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="properties")
* @ORM\JoinColumn(nullable=false)
*/
private $user;

        Mon fichier User.php
/**
 * @ORM\OneToMany(targetEntity="App\Entity\Property", mappedBy="user", orphanRemoval=true)
 */
private $properties;

### Ce que je veux

c'est une plateforme de location de biens immobiliers et chaque utilisateurs inscrit peut publier un ou plusieurs bien. pour cela j'ai créé une clé étrangère dans la table Property qui fait reference à l'indentifiant de cette utilisateur. cela me permettra plutard de récupérer les biens ce utilisateur ($user->getProperties())  
### Ce que j'obtiens
Le problème est qu'à chaque fois qu'un utilisateur ajoute un bien, j'obtiens toujours une erreur car l'identifiant de l'utilisateur n'est pas pris en compte dans la table des propriétés (Property) car ce champ "user_id" ne peux être vide.  Tous les champs sont bien pris en compte mais seul le champs user_id renvoit un message d'erreur. 
J'ai tout fait mais pas de solution


An exception occurred while executing 'INSERT INTO property (title, description, surface, rooms, bedrooms, floor, price, heat, city, address, postal_code, sold, created_at, updated_at, lat, lng, user_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params ["bien 1", "publication de mon premier bien", 979, 97, 7, 7, 9779797, 0, "Poissy", "12 Rue Madeleine Chartier, Poissy, \u00cele-de-France, France", "78300", 0, "2020-08-01 13:49:06", "2020-08-01 13:49:06", 48.9282, 2.0508, null]:

SQLSTATE[23000]: Integrity constraint violation: 1048 Le champ 'user_id' ne peut être vide (null)

Problème à la fin de la partie 2/16 de la formation Symfony

$
0
0

Bonjour,
Je suis assez novice en développement.
J'essaye de suivre le début de la formation Symfony et à la fin de la seconde vidéo, j'ai un message d'erreur :
Symfony\Component\DependencyInjection\Exception\ RuntimeException
\vendor\symfony\dependency-injection\Compiler\AbstractRecursivePass.php (line 160)
La ligne 160 :
throw new RuntimeException(sprintf('Invalid service "%s": class%s has no constructor.', $this->currentId, sprintf($class !== $this->currentId ? ' "%s"' : '', $class)));
En fait c'est après avoir utilisé les routes avec Annotations apparemment.
Quelqu'un aurait-il la solution ?


Symfony 4 - Slugify caractères non latin

$
0
0

Je me demande si vous avez une idée sur - comment je pourais - slugify des caractères non latin comme l’hébreu , l'arabe ... sur symfony 4 en utilisant Doctrine Extensions "Gedmo\Mapping\Annotation"

Merci

[Symfony 4.4] Erreur UniqueEntity me déconnecte

$
0
0

Salut voilà

Ce la fait plusieurs jours je rencontre ce problème et que je ne trouve pas de solution.

J'ai ce formulaire a remplir

Dans le fichier entité j'ai mis la contrainte qui dit que le username doit être unique.

Et que l'adresse mail aussi doit être unique.

Quand je veux créer un utlisateur avec un username déjà existant en bdd, la création de l'utilisateur ne se fait pas et de plus j'ai pas de message qui s'affiche.

Et quand je suis connecté et que je veux éditer le User avec un username qui existe déjà en bdd, je n'ai pas de message qui s'affiche et de plus je suis déconnécté.

Pourtant quand je regarde dans le debuger j'ai bel et bien les messages qui s'affiche.

Cette personne aurait eu le même problème que moi. Mais j'ai pas compris sa solution

https://github.com/symfony/symfony/issues/33418

Comment puis-je régler ces deux problèmes.

Voici mon code :

{{ form_start(formUsername)}}

         <div class="col-md-6">
             <div class="form-group">
                 <label>Pseudo</label>
                 <div>
                     {{ form_widget(formUsername.username) }}
                 </div>
             </div>
         </div>
         <div class="col-md-6">
             <div class="form-group">
                 <label>Adresse email</label>
                 <div>
                     {{ form_widget(formUsername.email) }}
                 </div>
             </div>
         </div>

     <div class="form-group">
         <button class="btn btn-success" type="submit">Envoyer</button>
     </div>
 {{ form_end(formUsername) }}
/**
 *@ORM\Entity(repositoryClass="App\Repository\Users\UserRepository")
 *@UniqueEntity(fields={"email"}, message="L'email que vous rentré est déjà utilisé")
 *@UniqueEntity(fields={"username"}, message="Le pseudo que vous avez saisi est déjà utilisé")
 * @Vich\Uploadable
 */
class User implements UserInterface,\Serializable, EquatableInterface

swift_mailer ovh

$
0
0

Bonjour,

Voila je rencontre un petit problème

j'ai configurer swift_mailer en local ca marche j'arrive a envoyer des message par un formulaire de contact

mais quand je passe en production cad mettre le tout sur mon serveur ovh en configurant .env selon la doc pour la config pour gmail en donnant l'accord sur gmail de recevoir Application moins sécurisée (activée)
malheuresement camarche pas pour moi
sur .env
MAILER_URL=gmail://monmail@gmail.com:MyPassword@localhost?encryption=tls&auth_mode=oauth

Entourez votre code pour bien le mettre en forme

Erreur create Entity -> console spam

$
0
0

Bonjour,
J'ai un problème en voulant débuter un projet avec la dernière version de Symfony.
Tout d'abord, je tiens à préciser que je viens de télécharger Symfony, Composer dans leurs dernières versions actuelles et que je tourne en PHP 7.4.0. OS: Windows 10. J'ai installéle package maker.
Quand je créer mon projet Symfony tout fonctionne, mais quand je veux créer mon Entity en utilisant " php bin/console make:entity", la console spam ce message tant que je ne fait pas "Ctrl+C":
"Class name of the entity to create or update (e.g. VictoriousChef):

[ERROR] Warning: exec(): Unable to fork [stty 2>&1]"

Et si je fais "php bin/console make:entity Nom", j'ai ce message:
"
created: src/Entity/Form.php
created: src/Repository/FormRepository.php

Entity generated! Now let's add some fields!
You can always add more fields later manually or by re-running this command.

New property name (press to stop adding fields):

In DebugClassLoader.php line 337:

Warning: include(C:\Users\Théo\Desktop\tessst\vendor\composer/../symfony/console/Event/ConsoleErrorEvent.php): failed to open stream: No such file or directory"

Dans les deux cas je ne peux pas vraiment créer ma base de données avec mes champs, dans le second cas, la BDD se créer mais je ne peux pas ajouter les champs non plus...

(J'ai aussi eu le même problème de spam quand j'ai créer mon controller avec "php bin/console make:controller", j'ai pu le créer en mettant directement le nom du controller à la suite -> php bin/console make:controller NomController)
J'ai déjà chercher des problèmes similaires sur internet, mais sans grands succès...

Installation Composer

$
0
0

Bonjour à tous,

Je dois reprendre un projet réalisé avec Symfony par un prestataire extérieur dont nous n'avons plus de nouvelles.
Mais je n'y connais rien en Symfony et Composer. Par contre, j'ai l'habitude de développement en PHP mais sans framework.

Mon poste de travail est sous W10 et j'ai un serveur de DEV distant sous Apache/2.4.6 (CentOS). C'est sur ce serveur que je dois placer mon projet Symfony.
Ensuite, je devrai installer mon projet Symfony sur un serveur de PROD.

Mes questions:

  • Est ce que je dois installer Composer sur mon poste de travail ? et dans ce cas, quid du chemin d'accès à PHP qu'il me demande lors de l'installation ?
  • ou Est ce que je dois l'installer uniquement sur le serveur de DEV ? et dans ce cas est ce que vous connaitriez un tutorial pour m'aider, sachant que je préfèrerais une installation globale car je vais sans doute créer plusieurs versions de ce projet ( plusieurs dossiers à la racine HTML)
  • Est ce qu'il est nécessaire d'installer Composer sur le serveur de PROD ? Si oui, est ce que vous connaitriez un tutorial pour me guider ?
  • Est ce que je dois activer l'option DEVELOPPEUR lors de(s) installation de Composer ? et qu'est ce que m'apporte cette option ?

Merci pour votre précieuse aide

Marco

Couverture de code par PHPUnit

$
0
0

Bonjour,

C'est la première fois que je réalise les tests unitaires sur un projet Symfony, ceci dans le but de mettre en place une usine logicielle via les Actions de GitHub.

Ma configuration

<?xml version="1.0" encoding="UTF-8"?>

<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="bin/.phpunit/phpunit.xsd"
         backupGlobals="false"
         colors="true"
         bootstrap="vendor/autoload.php"
>
    <php>
        <ini name="error_reporting" value="-1" />
        <server name="APP_ENV" value="test" force="true" />
        <server name="SHELL_VERBOSITY" value="-1" />
        <server name="SYMFONY_PHPUNIT_REMOVE" value="" />
        <server name="SYMFONY_PHPUNIT_VERSION" value="7.5" />
    </php>

    <testsuites>
        <testsuite name="Project Test Suite">
            <directory>tests</directory>
            <exclude>tests/Controller/Controller</exclude>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
<!--            <directory>./src/</directory>-->
<!--            <directory suffix=".php">src</directory>-->
            <directory>src/Controller</directory>
            <directory>src/Data</directory>
            <directory>src/Data</directory>
            <directory>src/Data</directory>
            <directory>src/Entity</directory>
            <directory>src/Entity</directory>
            <directory>src/Service</directory>
        </whitelist>
    </filter>

    <listeners>
        <listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
    </listeners>
</phpunit>

Je constate que la couverture de code ne prend pas en compte les objets dans le dossier Controller du projet.

Ma couverture de code actuelle

Code Coverage Report:    
  2020-08-12 10:16:13    

 Summary:                
  Classes: 55.56% (5/9)  
  Methods: 87.18% (34/39)
  Lines:   93.67% (74/79)

\App\Data\Data::App\Data\Data\AbstractData
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  4/  4)
\App\Data\Data::App\Data\Data\User
  Methods: 100.00% ( 7/ 7)   Lines: 100.00% ( 14/ 14)
\App\Data\Exception\Email::App\Data\Exception\Email\EmailInvalidFormatException
  Methods: 100.00% ( 1/ 1)   Lines: 100.00% (  2/  2)
\App\Data\ValueObject::App\Data\ValueObject\Email
  Methods: 100.00% ( 3/ 3)   Lines: 100.00% (  8/  8)
\App\Entity\Entity::App\Entity\Entity\AbstractEntity
  Methods:  80.00% ( 4/ 5)   Lines:  88.89% (  8/  9)
\App\Entity\Entity::App\Entity\Entity\User
  Methods:  87.50% (14/16)   Lines:  93.33% ( 28/ 30)
\App\Service\DTO::App\Service\DTO\UserDTO
  Methods: 100.00% ( 2/ 2)   Lines: 100.00% ( 10/ 10)

En vous remerciant par avance pour votre aide.

Gestion des rôles

$
0
0

Bonjour,

Voilà, j'ai un petit souci sous Symfony 5.1

Ce que je veux

Je cherche un moyen de spécifier à Symfony que par exemple un certain ROLE_VENDEUR possède aussi les privilèges d'un autre ROLE_USER, après quelques recherches je n'ai pas réussi à trouver. D'où ce post


Easy admin + AdminLte

$
0
0

Bonjour à tous,

Je souhaiterais savoir si une personne n'a pas déjà coupler le fonctionnement de Easy admin avec Admin LTE. Et si c'est le cas, si il n'y a pas quelque chose de déjà "tout prêt".

Tout ce que je trouve, c'est l'implémentation des template d'AdminLTE, et lorsque je surcharge Easy admin, disons que le résultat n'est pas l'attendu...

Je vous remercie de l'aide que vous pourrez m'apporter ;)

Kimouss

make:entity

$
0
0

Bonjour,

je veux créer une entité et je rencontre l'erreur suivante:

C:\Users\Utilisateur\Desktop\musee>symfony console make:entity

Class name of the entity to create or update (e.g. FiercePuppy):

pin

Your entity already exists! So let's add some new fields!

New property name (press to stop adding fields):

p
[error] Error thrown while running command "make:entity". Message: "Argument 2 passed to Symfony\Bundle\MakerBundle\Validator::validateDoctrineFieldName() must be an instance of Doctrine\Common\Persistence\ManagerRegistry, instance of Doctrine\Bundle\DoctrineBundle\Registry given, called in C:\Users\Utilisateur\Desktop\musee\vendor\symfony\maker-bundle\src\Maker\MakeEntity.php on line 303"

In Validator.php line 158:

Argument 2 passed to Symfony\Bundle\MakerBundle\Validator::validateDoctrineFieldName() must be an instance of Doctrine\Common\Persistence\Mana
gerRegistry, instance of Doctrine\Bundle\DoctrineBundle\Registry given, called in C:\Users\Utilisateur\Desktop\musee\vendor\symfony\maker-bund
le\src\Maker\MakeEntity.php on line 303

make:entity [-a|--api-resource] [--regenerate] [--overwrite] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] []

2020-08-25T19:29:33+00:00 [critical] Uncaught Error: Argument 2 passed to Symfony\Bundle\MakerBundle\Validator::validateDoctrineFieldName() must be an instance of Doctrine\Common\Persistence\ManagerRegistry, instance of Doctrine\Bundle\DoctrineBundle\Registry given, called in C:\Users\Utilisateur\Desktop\musee\vendor\symfony\maker-bundle\src\Maker\MakeEntity.php on line 303
exit status 255

Réécriture URL / Redirection 301

Method Not Allowed (Allow: DELETE)

$
0
0

Bonjour,

J'ai un probleme d'erreure 405 qui me dis que la methode "DELETE" doit etre utilisée a la place de "GET" pourtant j'ai bien utilisée la méthode "DELETE"
J'ai suivi la création du site d'agence immobilière et je tombe sur cette erreure.

Ce que je fais

--------------------Voici mon code--------------------
Mon controller:

<?php

namespace App\Controller\Admin;

use App\Entity\Picture;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;


/**
 * @Route("/admin/picture")
 */
class AdminPictureController extends AbstractController{

    /**
     * @Route("/delete-picture/{id}", name="admin.picture.delete", methods="DELETE")
     * @param Picture $picture
     * @param Request $request
     * @return JsonResponse
     */
    public function delete(Picture $picture, Request $request) {
        $data = json_decode($request->getContent(), true);
        if ($this->isCsrfTokenValid('delete' . $picture->getId(), $data['_token'])) {
            $em = $this->getDoctrine()->getManager();
            $em->remove($picture);
            $em->flush();
            return new JsonResponse(['success' => 1]);
        }

        return new JsonResponse(['error' => 'Token invalide'], 400);
    }

}

Mon app.js:


document.querySelectorAll('[data-delete]').forEach(a => {
    a.addEventListener('click', e => {
        e.preventDefault()
        fetch(a.getAttribute('href'), {
            method: 'DELETE',
            headers: {
                'X-Requested-With': 'XMLHttpRequest',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({'_token': a.dataset.token})
        }).then(response => response.json())
            .then(data => {
                if (data.success) {
                    a.parentNode.parentNode.removeChild(a.parentNode)
                } else {
                    alert(data.error)
                }
            })
            .catch(e => alert(e))
    })
})

Aidez-moi svp j'arrive pas à faire disparaitre cette erreure pourtant j'ai bien recopié le code(normalement)

Merci a vous

A new entity was found through the relationship

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.
j'ai 2 entity Recharge et Discount .

Dans l'entity Discount

 /**
     * @ORM\OneToMany(targetEntity=Recharge::class, mappedBy="discount")
     *
     */
    private $recharges;

Dans l'entity Recharge


      /**
     * @ORM\ManyToOne(targetEntity=Discount::class, inversedBy="recharges")
     */
    private $discount;


Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

 $recharge->setPaymentStatus('SUCCESS');
                            $recharge->setSenderPhoneNumber($this->getUser()->getPhone());
                            $recharge->setPaymentGateway(Constantes::PAYMENT_GATEWAY_STRIPE)
                               ->setTransactionIdUnite($airtime_content->responseId)
                               ->setTransactionStatutUnite("SUCCESS")
                               ->setTransaction($charge->id)
                               ->setTaxid($charge->id)
                               ->setBalanceTransaction($charge->balance_transaction)
                               ->setCarte($charge->source->id)
                               ->setCountryCard($charge->source->country)
                                ->setUser($this->getUser())
                               ->setDiscount($discount)
                               ->setFinger($charge->balance_transaction);
                           $this->em->persist($recharge);
                           $this->em->flush();

Ce que je veux

L'enregistrement s'effectue correctement quand je mets cascade="persist" mais le problème il me duplique le l'enregistrement du discount dans la base de donnée avec un nouvel id

Ce que j'obtiens

Dans je mets pas cascade="persiste" j'obtiens ça

Doctrine\ORM\ORMInvalidArgumentException {#1062 ▼
  #message: "A new entity was found through the relationship 'App\Entity\Recharge#discount' that was not configured to cascade persist operations for entity: App\Entity\Discount@000000006eb580b70000000060cc37b0. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement 'App\Entity\Discount#__toString()' to get a clue. ◀"
  #code: 0
  #file: "C:\wamp\www\banlalsend\vendor\doctrine\orm\lib\Doctrine\ORM\ORMInvalidArgumentException.php"
  #line: 102
  trace: {▶}

Merci d'avance

Viewing all 1542 articles
Browse latest View live