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

Afficher dans Twig l'image avant l'envoi serveur

$
0
0

Bonjour à tous et à toutes !
Je travaille sur un site en symfony.
Je souhaiterais savoir comment afficher en préalable l'image que l'on vient de récupérer sur son poste (une prévisualisation avant le "Envoyer !"
DAns l'image du dessus, c'est marqué "Aucun fichier choisi"
Et quand je clique sur "Choisissez un fichier", le nom du fichier choisi s'affiche à la place de "Aucun fichier choisi"...
Aucun moyen de travailler cette zone : j'ai regardé dans le request, j'ai vu aussi les variables PHP , mais comment afficher la variable $_FILES[...] dans twig ?
Merci de vos suggestions et je continue à chercher !


Executer des evenements dans une API en symfony

$
0
0

Bonjour,

Je developpe une API REST en symfony. Cela concerne un ensemble d'articles. La partie cliente est developpée en angular2.

Les utilisateurs peuvent faire appel a l'api pour:
***- Créer des articles

  • Commenter
  • Reagir avec des j'aimes ou j'aimes pas.***

Chanque article a un temps de vie comme sur snapchat, que son auteur peut choisir (2h, 3h, 24h).

Alors, pour fermer un aricle je fais comme suit:
***- Je mets un compte a rebours concernant chaque article depuis Angular2

  • Quand ce compte a rebours est terminé... cela declenche un evenement qui envoie une requette a l'api afin de fermer l'article.***

Ca fonctionne, mais je constate le probleme suivant:

Lors de la fermeture d'un article, il ya trop de requettes qui sont envoyés au serveur. Imaginez que j'ai milles utilisateurs connectés au site. Quand le compte a rebours prend fin, il y aura 1000 requettes qui seront envoyées au serveur concernant toutes la fermeture d'un seul et meme article.

Est ce qu'il n'y a pas moyens de faire en sorte que l'api decouvre lui meme quand il faut fermer un article et qu'il envoie une notification a tous les clients connectés afin qu'ils savhent a l'instant que l'article est fermé?

Merci d'avance pour vos aides.

besoin de votre aide

$
0
0

Bonjour,
je suis débutante en symfony et j'ai commencé de suivre des vidéos sur youtube pour symfony 3.2,
est ce que vous pouvez me donner des youtubers que je pourrais les suivre facilement et des documents cours etc .. merci d'avance ^^

Transmettre et récupérer des paramètres à un formulaire

$
0
0

Bonjour,

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

Ce que je fais

Je travaille avec Symfony 3.3.10
Alors, je dois afficher un formulaire qui permet de lier des matières à des classes. Lorsque je sélectionne une matière pour une classe donnée, lors de l'ajout d'une autre matières, la/les matière/s déjà liée/s ne doit/vent par apparaître dans la liste des matières qui est un select.

Voici mon controller:

public function lierClassesMatieresAction(Request $request, $as, $classeId)
{
  $em = $this->getDoctrine()->getManager();

  $classe       = $em->getRepository('ISIBundle:Classe')->find($classeId);
  $enseignement = new Enseignement;

  // $interview_form = $this->createForm(new InterviewType($id), $interview);

  $form = $this->createForm(EnseignementType::class, $enseignement, [
    'entity_manager' => $em,
    'as'             => $as,
    'classeId'   => $classeId]);
  return $this->render('ISIBundle:Parametres:lierClassesMatieres.html.twig', array(
    'asec'        => $as,
    'classeId' => $classeId,
    'form'      => $form->createView()
  ));
}

EntityType:

<?php

namespace ISIBundle\Form;

use Symfony\Component\Form\Type;

use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;

use Symfony\Bridge\Doctrine\Form\Type\EntityType;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

use ISIBundle\Repository\MatiereRepository;


class EnseignementType extends AbstractType
{

    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
      $em = $options['entity_manager'];
      $as       = $options["as"];
      $classeId = $options["classeId"];
        $builder
          ->add('coefficient',    NumberType::class)
          ->add('statuMatiere',   CheckboxType::class)
          ->add('matiere',          EntityType::class,
              array(
                'class'         => 'ISIBundle:Matiere',
                'query_builder' => function (MatiereRepository $matiere)/* use ($as, $classeId)*/
                                  {

                                    $subquery = $matiere->classesMatieres($as, $classeId);
                                    return $matiere->createQueryBuilder()
                                                   ->select('*')
                                                   ->from('matiere', 'm')
                                                   ->where('m.matiereid', 'NOT IN', $subquery);
                                  },
                'choice_label'  => 'm.libelleMatiere',
                'multiple'      => false
            ))
            ->add('save',          SubmitType::class, array('label' => 'Ajouter la metière'))
        ;
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'ISIBundle\Entity\Enseignement'
        ));

        $resolver->setRequired('entity_manager');
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'isibundle_enseignement';
    }
}

Ce que je veux

Je veux afficher ce formulaire dans lequel j'ai un champ (select) dont les données sont le résultat d'une requête que je fais avec le QueryBuilder. Ladite requête contient des paramètres car la sélection de données se fait selon des critères.

Ce que j'obtiens

The options "as", "classeId" do not exist. Defined options are: "action", "allow_extra_fields", "attr", "auto_initialize", "block_name", "by_reference", "compound", "constraints", "csrf_field_name", "csrf_message", "csrf_protection", "csrf_token_id", "csrf_token_manager", "data", "data_class", "disabled", "empty_data", "entity_manager", "error_bubbling", "error_mapping", "extra_fields_message", "inherit_data", "invalid_message", "invalid_message_parameters", "label", "label_attr", "label_format", "mapped", "method", "post_max_size_message", "property_path", "required", "translation_domain", "trim", "upload_max_size_message", "validation_groups".

Il semblerait que la transmission de paramètres au formulaire ne soit pas prise en compte:

Controller->createForm('ISIBundle\\Form\\EnseignementType', object(Enseignement), array('entity_manager' => object(EntityManager), 'as' => '1', 'classeId' => '1'))
in src\ISIBundle\Controller\ParametresController.php (line 224)
    // $interview_form = $this->createForm(new InterviewType($id), $interview);     $form = $this->createForm(EnseignementType::class, $enseignement, [       'entity_manager' => $em,       'as'             => $as,       'classeId'       => $classeId]);     return $this->render('ISIBundle:Parametres:lierClassesMatieres.html.twig', array(       'asec'     => $as,       'classeId' => $classeId,       'form'     => $form->createView()     ));

Uploader une Image insérée dans Summernote ?

$
0
0

Bonjour à tous,

Dans mon projet Symfony 3, j'utilise Summernote un plugin Javascript pour rédiger des textes avec une belle mise en forme.

Dans Summernote, on peut ajouter des images dans son texte, je cherche donc à uploader une image tout en respectant la mise en place des forms de Symfony.

Summernote fonctionne de la manière suivante pour l'upload :
Lors de l'ajout d'une image la fonction onImageUpload est appellée, ce qui permet de récupèrer l'image. C'est donc ici que je veux envoyer un formulaire en ajax vers un de mes contrôlleur Symfony.

Pour le côté serveur tout est opérationnelle pour enregistrer une image, mais je ne sais pas comment générer mon formulaire à partir de Javascript.
J'étais parti dans l'idée de générer mon formulaire dans la page puis de récupérer les informations (token, url vers le controller, Method ) et générer avec Javascript un formulaire comme dans le début de code en dessous. Je cherche donc à générer avec FormData un formulaire correcte qui sera valide pour le contrôller.

$(document).ready(function () {
            $('#summernote').summernote({
                height: 150,
                callbacks: {
                    onImageUpload: function (files) {
                        sendFile(files[0]);
                    }
                },
                codemirror: {
                    theme: 'monokai'
                }

            });
            function sendFile(file) {

                //---------------------------> création du form ici
                var formData = new FormData();
                formData.append('image[_token]', $('#image_token').val());
                formData.append('image[file][]', file, file.name);
                //---------------------------> fin du problème ...

                 $.ajax({
                     data: formData,
                     type: "POST",
                     url: 'url vers mon controller',
                     cache: false,
                     contentType: false,
                     processData: false,
                     success: function(url) {
                         $("#summernote").summernote("insertImage", url);
                     }
                 });
            }
        });

J'ajoute aussi le formType :

class ImageType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('file', FileType::class, array(
                'data_class' => null,
                'multiple' => false,
            ))
            ->setMethod("POST");
            ;
    }
}

Si vous avez des pistes ou une autre idée je suis aussi preneur.
Merci d'avance pour votre aide.

Toujours à la recherche de la construction d'un formulaire ...

cURL error 28: GuzzleHttp

$
0
0

J'utilise GuzzleHttp afin d'envoyer des requêtes vers une API que j'ai coder, cependant j'obtiens cette erreur chaque fois que je tente d'envoyer une requête:

cURL error 28: Connection timed out after 3141 milliseconds (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Voici le code du service qui envoie les requêtes:

<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace Dinastyserv\AdminBundle\Services;
use GuzzleHttp\Client;
/**
 * Description of GluzzServices
 *
 * @author Dinasty-Serv
 */
class GluzzServices {
     public function getHttpClient($node,array $headers = [])
    {
        //$headers['X-Access-Token'] = $node->getDaemonSecret();
        //$client = new Client(['base_uri' => sprintf('%s://%s:%s/', $node->getscheme(), $node->getFqdn(), $node->getDaemonListen())]);
        // Send a request to https://foo.com/api/test
       // $response = $client->request('GET', '');
        return new Client([
            'base_uri' => sprintf('%s://%s:%s/', $node->getscheme(), $node->getFqdn(), $node->getDaemonListen()),
            'timeout' => 3.14,
            'connect_timeout' => 3.14,
            'headers' => $headers,
        ]);

        //return $request;
    }
}

Et la commande envoyer:

$request = new GluzzServices();

       //$request->getHttpClient($node, $headers);
        $reponse = $request->getHttpClient($node)->request('GET', '/', ['debug' => true]);
        dump($reponse->getStatusCode());
        die();

Sa fait déjà 2 jours que j'épluche le web et la doc de GuzzleHttp sans trouver de solution et sans savoirs d'ou sa viens...je me retourne vers vous

Merci à tous et joyeuse fête d'halloween.

[Symfony] Out of memory command

$
0
0

Bonjour,
J'ai un soucis lorssque j'execute ma commande symfony.
Celle ci plante à 82%.

protected function execute(InputInterface $input, OutputInterface $output)
    {
        $argument       = $input->getArgument('argument');
        $manager        = $this->getContainer()->get("doctrine")->getManager();
        $aliasManager   = $this->getContainer()->get("doctrine")->getManager("alias");

        $encoursImport = $aliasManager->getRepository("EncoursBundle:Encours")->getAllImport();
        $Users = $manager->getRepository("EncoursBundle:Encours")->getUsers();

        $output->writeln('Importation des encours.....');

        $progress = new ProgressBar($output, count($encoursImport));
        $progress->setRedrawFrequency(400);
        $progress->setFormat("very_verbose");
        $progress->start();

        if(empty($Users)){
            foreach ($encoursImport as $item){
                $numEtablissement   = $item->getNUETABLISSEMEN();
                $libelle            = $item->getLibelleEcriture();
                $piece              = $item->getPIECE();
                $numCompta          = $item->getNUCOMPTA();
                $debit              = $item->getDEBIT();
                $credit             = $item->getCREDIT();
                $solde              = $item->getSOLDE();
                $provenance         = $item->getProvenance();
                $dateEcriture       = $item->getDATEEcriture();
                $dateModif          = $item->getDateModification();

                $user = $manager->getRepository("UserBundle:User")->getUserByNumCompta($numCompta);


                $encours = new Encours();

                $encours->setNUETABLISSEMEN($numEtablissement);
                $encours->setLibelleEcriture($libelle);
                $encours->setPIECE($piece);
                $encours->setNUCOMPTA($numCompta);
                $encours->setDEBIT($debit);
                $encours->setCREDIT($credit);
                $encours->setSOLDE($solde);
                $encours->setProvenance($provenance);
                $encours->setDATEEcriture($dateEcriture);
                $encours->setDateModification($dateModif);
                $encours->setUser($user);

                $manager->persist($encours);
                $progress->advance();
            }
        }else {
            foreach ($Users as $user){
                $encoursUser = $manager->getRepository("EncoursBundle:Encours")->findBy([
                    "nUCOMPTA" => $user->getNUCOMPTA()
                ]);
                if(!empty($encoursUser)){
                    foreach ($encoursUser as $encours){
                        $manager->remove($encours);
                    }
                }

            }
            $manager->flush();

            foreach ($encoursImport as $item){
                $numEtablissement   = $item->getNUETABLISSEMEN();
                $libelle            = $item->getLibelleEcriture();
                $piece              = $item->getPIECE();
                $numCompta          = $item->getNUCOMPTA();
                $debit              = $item->getDEBIT();
                $credit             = $item->getCREDIT();
                $solde              = $item->getSOLDE();
                $provenance         = $item->getProvenance();
                $dateEcriture       = $item->getDATEEcriture();
                $dateModif          = $item->getDateModification();

                $user = $manager->getRepository("UserBundle:User")->getUserByNumCompta($numCompta);

                $row = explode(":", $libelle);
                if(count($row) > 1){
                    $reference = trim($row[1]);
                    $encoursTemp = $manager->getRepository("EncoursBundle:EncoursTemp")->findBy([
                        "numTransaction"    => $reference,
                        "nUCOMPTA"          => $user->getNumCompta()
                    ]);
                    if(!empty($encoursTemp)){
                        $manager->remove($encoursTemp[0]);
                    }
                }

                $manager->flush();

                $encours = new Encours();

                $encours->setNUETABLISSEMEN($numEtablissement);
                $encours->setLibelleEcriture($libelle);
                $encours->setPIECE($piece);
                $encours->setNUCOMPTA($numCompta);
                $encours->setDEBIT($debit);
                $encours->setCREDIT($credit);
                $encours->setSOLDE($solde);
                $encours->setProvenance($provenance);
                $encours->setDATEEcriture($dateEcriture);
                $encours->setDateModification($dateModif);
                $encours->setUser($user);

                $manager->persist($encours);
                $progress->advance();
            }
        }
        $manager->flush();
        $progress->finish();
        $output->writeln(' ');
        $output->writeln('Opération terminée.');
    }
Importation des encours.....
 16000/19422 [=======================>----]  82%  1 min/1 min
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1179648 bytes) in /Users/deshiloh/Sites/aliasPaiement/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php on line 1219
10:10:14 CRITICAL  [php] Fatal Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1179648 bytes) ["exception" => Symfony\Component\Debug\Exception\OutOfMemoryException { …}] []


  [Symfony\Component\Debug\Exception\OutOfMemoryException]
  Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1179648 bytes)

This form should not contain extra fields

$
0
0

Bonjour,

j'ai cette erreur quand il submit formulaire : 'This form should not contain extra fields'

code controller:

<?php

    namespace AppBundle\Controller\Condidate;

    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use AppBundle\Entity\Skill;
    use AppBundle\Controller\AbstractController;
    use AppBundle\Form\SkillType;

    /**
     *Class SkillController.
     */
    class SkillController extends AbstractController
    {

         /**
         *function handler.
         */
         protected function getHandler(){
            return $this->get('recurit.handler.skill');
        }

        public function getSkillAction(Request $request){
             return $this->render('skills/listkill.html.twig');
        }

        /**
         *function addSkill
         * @param Request $request
         * @return \Symfony\Component\Form\Form The form
         */
        public function addSkillAction(Request $request) {
              $skill =$this->getHandler()->post($request->request->all());
            if ($skill instanceof Skill) {
                //return $this->redirectToRoute('list_skills');
        }

        return $this->render('skills/newskill.html.twig', array(
            'form' => $skill->createView(),));
        }

}

cod service:

/**
           *function post
           */
        public function post(array $parameters, array $options = []) {
            $form = $this->formFactory->create(\AppBundle\Form\SkillType::class, new Skill(), array("csrf_protection" => "false"));
           $form->submit($parameters);
           //var_dump($form->getErrors());
            if ( $form->isSubmitted() ) {
                var_dump('1');
                var_dump($form);
                //var_dump($form->getData());
                /*$skill = $form->getExtraData();
                $this->persistAndFlush($skill);
                return $skill;*/
            }

            return $form;
        }

        /**
         *function persisteAndFlush
         */

        protected function persistAndFlush($object) {
           $this->em->persist($object);
           $this->em->flush();
        }

code SkillType:

/**
         * {@inheritdoc}
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add('nomComp',TextType::class);
            //$builder->add('submit',SubmitType::class);

        }

        /**
         * {@inheritdoc}
         */
        public function configureOptions(OptionsResolver $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'AppBundle\Entity\Skill',
                "csrf_protection" => "false"
            ));
        }

code vue:

{% extends 'base.html.twig' %}
    {% block body %}

    {{ form_start(form) }}


        {{ form_row(form.nomComp) }}

    <input type="submit" value="Create" />
        {{ form_end(form) }}

    {%endblock%}

comment résoudre cetter probléme s'il vous plait et merci d'avance


[Symfony] Multi BDD avec OVH

$
0
0

Bonjour,
J'ai installé le système de multi base de données avec symfony sur un serveur OVH. En local la commande fonctionne, par contre sur le serveur OVH j'obtiens une erreur connexion refusée.
Voici les réglages :

protected function execute(InputInterface $input, OutputInterface $output)
    {
        $argument       = $input->getArgument('argument');
        $output->writeln("Début de limportation des utilisateurs....");

        $manager        = $this->getContainer()->get("doctrine")->getManager("default");
        $aliasManager   = $this->getContainer()->get("doctrine")->getManager("alias");

        $usersImport    = $aliasManager->getRepository("UserBundle:User")->getAllImport();
        $users          = $manager->getRepository("UserBundle:User")->findAll();

        $encoder = $this->getContainer()->get("security.password_encoder");

        $progress = new ProgressBar($output, count($usersImport));
        $progress->setRedrawFrequency(5);
        $progress->setFormat("very_verbose");
        $progress->start();

        if(empty($users)){
            foreach ($usersImport as $userImport){

                $numCompta          = $userImport->getNumCompta();
                $numEtablissement   = $userImport->getNumEtablissement();
                $nom                = $userImport->getNom();
                $prenom             = $userImport->getPrenom();
                $email              = $userImport->getEmail();
                $adresse            = $userImport->getAdresse();
                $adresseBIS         = $userImport->getAdresse2();
                $codePostal         = $userImport->getCodePostal();
                $ville              = $userImport->getVille();
                $identifiant        = $userImport->getIdentifiant();
                $motdepasse         = trim($userImport->getMotPasse());
                $codePays           = $userImport->getCodePays();
                $telephone          = $userImport->getTelephone();
                $telPort            = $userImport->getTelephonePort();
                $actif              = true;
                $firstConnexion     = true;


                $user = new User();

                $user->setNumCompta($numCompta);
                $user->setNumEtablissement($numEtablissement);
                $user->setNom($nom);
                $user->setPrenom($prenom);
                $user->setEmail($email);
                $user->setAdresse($adresse);
                $user->setAdresse2($adresseBIS);
                $user->setCodePostal($codePostal);
                $user->setVille($ville);
                $user->setIdentifiant($identifiant);
                $user->setMotPasse($encoder->encodePassword($user, $motdepasse));
                $user->setCodePays($codePays);
                $user->setTelephone($telephone);
                $user->setTelephonePort($telPort);
                $user->setActif($actif);
                $user->setPremierConnexion($firstConnexion);
                $user->setDateCreation(new \DateTime());

                $manager->persist($user);
                $progress->advance();
            }
            $manager->flush();
        }else{
            foreach ($usersImport as $userImport){
                $numCompta          = $userImport->getNumCompta();
                $numEtablissement   = $userImport->getNumEtablissement();
                $nom                = $userImport->getNom();
                $prenom             = $userImport->getPrenom();
                $email              = $userImport->getEmail();
                $adresse            = $userImport->getAdresse();
                $adresseBIS         = $userImport->getAdresse2();
                $codePostal         = $userImport->getCodePostal();
                $ville              = $userImport->getVille();
                $codePays           = $userImport->getCodePays();
                $telephone          = $userImport->getTelephone();
                $telPort            = $userImport->getTelephonePort();

                $user = $manager->getRepository("UserBundle:User")->getUserByNumCompta($numCompta);

                if($numEtablissement !== $user->getNumEtablissement()){
                    $user->setNumEtablissement($numEtablissement);
                }

                if($nom !== $user->getNom()){
                    $user->setNom($nom);
                }
                if($prenom !== $user->getPrenom()){
                    $user->setPrenom($prenom);
                }
                if($email !== $user->getEmail()){
                    $user->setEmail($email);
                }
                if($adresse !== $user->getAdresse()){
                    $user->setAdresse($adresse);
                }
                if($adresseBIS !== $user->getAdresse2()){
                    $user->setAdresse2();
                }
                if($codePostal !== $user->getCodePostal()){
                    $user->setCodePostal($codePostal);
                }
                if($ville !== $user->getVille()){
                    $user->setVille($ville);
                }
                if($codePays !== $user->getCodePays()){
                    $user->setCodePays($codePays);
                }
                if($telephone !== $user->getTelephone()){
                    $user->setTelephone($telephone);
                }
                if($telPort !== $user->getTelephonePort()){
                    $user->setTelephonePort($telPort);
                }
                $progress->advance();
                $manager->flush();
            }
        }
        $progress->finish();
        $output->writeln('');
        $output->writeln('User importés.');
    }
doctrine:
    dbal:
        default_connection : default
        connections:
            default:
                driver: pdo_mysql
                host: '%database_host%'
                port: '%database_port%'
                dbname: '%database_name%'
                user: '%database_user%'
                password: '%database_password%'
                charset: UTF8
            alias:
                driver: pdo_mysql
                host: '%alias_database_host%'
                port: '%alias_database_port%'
                dbname: '%alias_database_name%'
                user: '%alias_database_user%'
                password: '%alias_database_password%'
                charset: UTF8


  [Doctrine\DBAL\Exception\ConnectionException]
  An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused



  [Doctrine\DBAL\Driver\PDOException]
  SQLSTATE[HY000] [2002] Connection refused



  [PDOException]
  SQLSTATE[HY000] [2002] Connection refused


Est ce que OVH bloque quelque chose ? je suis dans le flou total.

Question de bundle et AppKernel

$
0
0

Bonjour,

voilà j'utilise depuis plusieurs temps composer pour installer des bibliothèques utiles que j'utilise directement via leurs namespace. Je voulais savoir à quoi sert de déclarer ses bibliothèques dans le Kernel de symfony (AppKernel.php) ?

Peut t'on installer une bibliothèque par exemple de gestion d'image (crop...) via composer et l'utiliser dans Symfony directement via une instance sans forcément l'avoir ajouter au Kernel ?

Merci d'avance

SF3 Undefined method dans le Repository

$
0
0

Bonjour,

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

Ce que je fais

Alors, avant de posté ce sujet, je tiens à signalé que j'ai fais le tour de quelques sujets du même genre mais ils proposent tous la même solution (vider le cache en ligne de commande, manuellement, avoir l'annotation @ORM\Entity(repositoryClass="monBundle\Repository\EntityRepository" dans son Entity).
J'ai essayé ses solutions mais... :(

Sujets vus:
1 - https://openclassrooms.com/forum/sujet/symfony-3-undefined-method-getadverts
2 - https://openclassrooms.com/forum/sujet/symfony-3-26
3 - https://openclassrooms.com/forum/sujet/symfony-2-repository-non-reconnu-29501 (Pour celui-ci, ce serait un bug au niveau de Symfony)
4 - https://zestedesavoir.com/forums/sujet/1352/foire-aux-questions-symfony/?page=2#p23300

Je vous donne mes codes
Le controller.php

<?php
namespace ISIBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;

use ISIBundle\Entity\Eleve;
use ISIBundle\Repository\EleveRepository;
use ISIBundle\Entity\Anneescolaire;
use ISIBundle\Form\EleveType;

use Doctrine\ORM\EntityRepository;

class EleveController extends Controller
{
  public function indexAction(Request $request, $as, $regime)
  {
    $repoEleve = $this->getDoctrine()->getManager()->getRepository('ISIBundle:Eleve');
    $repo = get_class($repoEleve);

    if($regime === 'AC')
    {
      $eleves = $repoEleve->elevesAcademie();
    }
    else {
      $eleves = $repoEleve->elevesCentreFormation();
    }
    return $this->render('ISIBundle:Eleve:index.html.twig', array(
        'asec'   => $request->query->get('as'),
      'eleves' => $eleves,
      'regime' => $regime
    ));
    // return new Response($repo);
  }
}

?>

Et là, le Repository.php

<?php
namespace ISIBundle\Repository;

use Doctrine\ORM\QueryBuilder;
use ISIBundle\Repository;
use ISIBundle\Entity\Eleve;

use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\EntityManagerInterface;

class EleveRepository extends \Doctrine\ORM\EntityRepository
{
  // Récuperation des élèves de l'académie
  public function elevesAcedemie()
  {
    // $elevesAcademie = $this->_em->createQuery('SELECT * FROM ISIBundle:Eleve e WHERE e.matricule LIKE '*A*'');
    $qb = $this->createQueryBuilder('e');
    $qb->where('a.matricule LIKE LIKE '*A*'');
    // return $elevesAcademie->getResult();
    return $qb->getQuery()
              ->getResult();
  }

  // Récuperation des élèves du centre de formation
  public function elevesCentreFormation()
  {
    $elevesCentreFormation = $this->_em->createQuery('');
    return $elevesCentreFormation->getResult();
  }

  // Récupération du dernier matricule enregistré
  public function dernierMatricule()
  {
    $dernierMatricule = $this->_em->createQuery(
      'SELECT
      MAX(DISTINCT(SUBSTRING(SUBSTRING(e.matricule, 1, LENGTH(e.matricule) - 4), 5))) AS plus_grand_matricule
      FROM ISIBundle:Eleve e');

      return $dernierMatricule->getResult();
  }
}
//MAX(DISTINCT(CAST(SUBSTRING(SUBSTRING(e.matricule, 1, LENGTH(e.matricule) - 4), 5) AS SIGNED INTEGER))) AS plus_grand_matricule

?>

Et enfin mon Entity.php

<?php

namespace ISIBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Eleve
 *
 * @ORM\Table(name="eleve", indexes={@ORM\Index(name="contact_pere", columns={"contact_pere"}), @ORM\Index(name="contact_mere", columns={"contact_mere"}), @ORM\Index(name="contact", columns={"contact"})})
 * @ORM\Entity(repositoryClass="ISIBundle\Repository\EleveRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class Eleve
{
  //l'entity fais plus de mille lignes, je ne présente donc que ça définition
}

Ce que je veux

Je veux accéder à la méthode de mon Repository

Ce que j'obtiens

Voici le message que j'obtiens lorsque que je veux accéder à une méthode de mon répository:
Undefined method 'maMethodePersonnelle'. The method name must start with either findBy or findOneBy!

Avec tous ce code (qui a mon sens est bien écrit : le repositoryClass de l'entité bien défini, le Repository lui même dans monBundle\Repository, l'Entity dans monBundle\Entity) je ne comprends pas d'où vient cette erreur.

Pourriez-vous me proposer une solution

Installation Symfony W10

$
0
0

Bonjour,

J'aurai besoin de votre aide, je débute des cours sur le framework php Symfony. J'ai un soucis d'installation sur window 10, malgré que, j'ai copié le chemin qui mène à mon dossier php dans wamp, il me répond "

'php' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. "

Pourriez-vous m'aider svp?

Incompatibilité php 7.2

$
0
0

Bonjour,

j'utilise php 7.2 et ses dernier méthode tout fonctionne très bien par contre j'ai rencontré une erreur lorsque j'ai voulus taper la commande

bin/console cache:clear

que voici:

PHP Parse error:  parse error, expecting `';'' or `'{'' in /Applications/MAMP/htdocs/badge/src/App/BadgesBundle/Events/BadgeUnlockedEvent.php on line 28

dans cette class mes méthode ressemble à ceci:

/**
     * @return BadgeUnlocked
     */
    public function getBadgeUnlocked(): BadgeUnlocked
    {
        return $this->badgeUnlocked;
    }

le problème viens de ': BadgeUnlocked', lorsque je l'enlève il passe au suivant.

savez vous comment faire comprendre à symfony trois qu'il doit lire le php 7.2 pour ne pas tomber sur cette erreur ?

[Symfony] Command php script

$
0
0

Bonjour !

Je voulais savoir si il est possible de lancer une command symfony (dans mon cas j'ai créé une command loadUser)
En cherchant sur internet j'ai trouvé la commande exec de php mais je n'ai pas l'impression que ça fasse quelque chose.
Le but de cette page est qu'elle soit appelé via une cron sur un serveur OVH.
Voilà comment je fais :

<?php


$dbAlias = new PDO("mysql:host=xxxxxxx;dbname=xxxxxx", "xxxxxxxxx", "xxxxxxxx");
$dbAlias->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


$db = new PDO("mysql:host=xxxxxxxxx;dbname=xxxxxxxxx", "xxxxxxxxxxx", "xxxxxxxxxxx");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$userStmt   = $dbAlias->query("SELECT * FROM User_Import");
$users      = $userStmt->fetchAll(PDO::FETCH_ASSOC);


$encours_stmt   = $dbAlias->query("SELECT * FROM Encours_Import");
$encours        = $encours_stmt->fetchAll(PDO::FETCH_ASSOC);

function placeholders($text, $count=0, $separator=","){
    $result = array();
    if($count > 0){
        for($x=0; $x<$count; $x++){
            $result[] = $text;
        }
    }
    return implode($separator, $result);
}


foreach($users as $row){
    $fields = implode(",", array_keys($row));
    $test   = placeholders("?", sizeof(array_values($row)), ",");
    try{
        $stmt = $db->prepare("INSERT INTO User_Import (".$fields.") VALUES (".$test.")");
        if($stmt){
            $stmt->execute(array_values($row));
        }
    }catch (PDOException $e){
        echo $e->getMessage();
    }
}

foreach ($encours as $encour){
    $fields = implode(",", array_keys($encour));
    $values = placeholders("?", sizeof(array_values($encour)), ",");

    try{
        $stmt = $db->prepare("INSERT INTO Encours_Import (".$fields.") VALUES (".$values.")");
        if($stmt){
            $stmt->execute(array_values($encour));
        }
    }catch (PDOException $e){
        echo $e->getMessage();
    }
}

exec("php ".__DIR__."bin/console loadUser");
?>

prob de validation form : message 'cette valeur n'est pas valide'

$
0
0

Bonjour,

Je suis actuellement bloqué lorsque je souhaite enregistrer mon formulaire.
C'est un formulaire de renseignement d'un utilisateur.

Dans le formulaire, je remplis un input 'villeCodePostal' ce qui déclanche un action ajax pour sélectionnez les villes , le select 'villeNom' se remplit avec les noms des villes et les id des villes.

Je valide le formulaire, le $request dans le controlleur à bien id de la ville, par contre $form->isValid() retourne false donc redirection vers le formulaire avec le message 'cette valeur n'est pas valide' apparait sous la ville.

Id de la ville de retour est bonne , les relations OnetoMany me paraissent ok, aucun message d'erreur

Le code postal et les villes sont dans la même table.
'mapped' => false pour les noms de ville pour ne pas prendre toutes les villes de la table

un extrait de mon code:

---------------------------------------------
controller:
----------------
/**
     * Creates a new customer entity.
     *
     * @Route("/new", name="customer_new")
     * @Method({"GET", "POST"})
     */
    public function newAction(Request $request)
    {
    ...
    $customer = new Customer();
        $form = $this->createForm('AppBundle\Form\CustomerType', $customer);
        $form->handleRequest($request);
        if ($form->isSubmitted() && $form->isValid()) {
            $telModifier = str_replace('-', '', $customer->getTelephoneFixe());
            $customer->setTelephoneFixe($telModifier);
            $em = $this->getDoctrine()->getManager();
            $em->persist($customer);
            $em->flush();

            ...
  }

mes entities

  -----------------------------------------------------
    entity: customer
  -----------

/**
 * Customer
 *
 * @ORM\Table(name="customer")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\CustomerRepository")
 *
 * Pour empêcher un nouvel client de s'enregistrer en utilisant:
 * ---------------------------------------------------------------------
 * @UniqueEntity("telephonePortable", message="Ce téléphone n'est pas disponible")
 */
class Customer
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="prenom", type="string", length=255)
     */
    private $prenom;
    /**
     * @var string
     *
     *     pattern="/^(?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4}$/",
     *     match=false,
     *     message="Le numero de téléphone n'est pas valide"
     *
     * @ORM\Column(name="telephone_portable", type="string", length=14, unique=true)
     */
    private $telephonePortable;
    .....

    //////////////////////////////////////////////////----------------------------------------------------------
    /**
     * @var \AppBundle\Entity\VillesFranceFree
     *
     * @ORM\ManyToOne(targetEntity="\AppBundle\Entity\VillesFranceFree", inversedBy="customers")
     * @ORM\JoinColumn(nullable=false)
     *
     */
    private $villesFranceFree;
    //////////////////////////////////////////////////----------------------------------------------------------
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->customers_of_contruction_site = new \Doctrine\Common\Collections\ArrayCollection();
    }
...
}
  ----------------------------------------------------------------
  entity ville
  ---------------
  /**
 * VillesFranceFree
 *
 * @ORM\Table(name="villes_france_free",
 *     uniqueConstraints={
 *              @ORM\UniqueConstraint(name="ville_code_commune_2", columns={"ville_code_commune"}) },
 *     indexes={
 *              @ORM\Index(name="ville_nom", columns={"ville_nom"}),
 *              @ORM\Index(name="ville_code_postal", columns={"ville_code_postal"})})
 *
 * @ORM\Entity(repositoryClass="AppBundle\Repository\VillesFranceFreeRepository")
 */
class VillesFranceFree
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="ville_nom", type="string", length=45, nullable=true)
     */
    private $villeNom;

    /**
     * @var string
     *
     * @ORM\Column(name="ville_code_postal", type="string", length=255, nullable=true)
     */
    private $villeCodePostal;


    ////////////////////-------------------------
    /**
     * @var \AppBundle\Entity\Customer
     *
     * @ORM\OneToMany(targetEntity="\AppBundle\Entity\Customer", mappedBy="villesFranceFree")
     */
    private $customers;
    //////////////////////////////////////////////////----------------------------------------------------------

    /**
     * Constructor
     */
    public function __construct()
    {
          $this->customers = new \Doctrine\Common\Collections\ArrayCollection();
    }
    ...
    }

CustomerType.php

    ------------------------------------------------------------
    form
    ---------------------------
     public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('villeCodePostal', NumberType::class, array(
                'attr' => array('class' => 'form-control col-md-7 col-xs-12', 'data-validate-length-range' =>'5', 'pattern' => 'numeric'),
                'label' => 'Code postal',
                'mapped' => false,
            ))
            ->add('villeNom', ChoiceType::class, array(
                    'choices' => array('' => ''),
                    'attr' => array('class' => 'form-control col-md-7 col-xs-12'),
                    'label' => 'ville',
                    'mapped' => false,
                    'required'   => false,
            ))
        ;
    }

et pour finir un bout de twig

...<div class="item form-group"><label class="control-label col-md-3 col-sm-3 col-xs-12" for="{{ form.villeCodePostal.vars.id }}">{{  form_label(form.villeCodePostal)  }} <span class="required">*</span></label><div class="col-md-6 col-sm-6 col-xs-12">
                                    {{ form_widget(form.villeCodePostal) }}
                                    {{ form_errors(form.villeCodePostal) }}</div></div><div class="item form-group"><label class="control-label col-md-3 col-sm-3 col-xs-12" for="{{ form.villeNom.vars.id }}">{{  form_label(form.villeNom)  }} <span class="required">*</span></label><div class="col-md-6 col-sm-6 col-xs-12">
                                    {{ form_widget(form.villeNom) }}
                                    {{ form_errors(form.villeNom) }}</div></div>
 ...

Petite précisions, lorqu'il revient sur le form le select du nomVille est vide.
Symfony 3

Merci pour votre aide

Bonne journée
drick


Bug sauvegarde entity

$
0
0

Bonjour,

Voilà avec symfony 3 j'utilise ODM pour la gestion bdd, je rencontre un bug sur deux documents. J'ai une relation ManyToOne avec mes deux documents, 'Box' contient des 'Message'. J'ai plusieurs relations de ce type qui fonctionne à la perfection mais ici l'entité(document) est stocké seulement côté Message. Je ne comprends pas pourquoi cela ne fonctionne pas, je dois avoir une erreur banale ... qui ne me saute pas aux yeux.

Les entités / documents :

/**
 * Document\Box
 *
 * @ODM\Document(repositoryClass="Repository\BoxRepository")
 */
class Box
{
  /*...*/
  /**
     * @ODM\ReferenceMany(targetDocument="Message", mappedBy="box", cascade={"remove"})
     */
    protected $messages;


    public function addMessage($message)
    {
        $this->messages[] = $message;
    }


    public function removeMessage($message)
    {
        $this->messages->removeElement($message);
    }
class Message
{
  /**
     * @ODM\ReferenceOne(targetDocument="Box", inversedBy="messages", cascade={"persist"})
     */
    protected $box;

    public function setBox($box)
    {
        $this->box = $box;
        $box->addMessage($this);
        return $this;
    }
}

Le controller :


$box = new Box();
$Message = new Message();

$Message->setBox($box);

$dm->persist($Message);
$dm->flush();

Je précise que les deux documents sont enregistrés en base de données, seul le champ messages de Box n'a pas de messages.

Merci pour votre aide.

upload fichier n'est pas fonctionne

$
0
0

Bonjour,
Je veux faire upload fichier mais j'ai un probléme .. move est fonctionne c'est à dire déplacement du fichier est fonctionne mais path en base de données est vide

code entity media:

<?php

        namespace AppBundle\Entity;

        use Doctrine\ORM\Mapping as ORM;
        use Symfony\Component\validator\Constraints as Assert;
        use Symfony\Component\HttpFoundation\File\UploadedFile;

        /**
         * Media
         *
         * @ORM\Table(name="medias")
         * @ORM\Entity(repositoryClass="AppBundle\Entity\Repository\MediaEntityRepository")
         * @ORM\HasLifecycleCallbacks
         */
        class Media
        {
            /**
             * @var integer
             *
             * @ORM\Column(name="id", type="integer")
             * @ORM\Id
             * @ORM\GeneratedValue(strategy="AUTO")
             */
            private $id;


             /**
             * @var \DateTime
             *
             * @ORM\COlumn(name="updated_at",type="datetime", nullable=true)
             */
            private $updateAt;

            /**
             * @ORM\PostLoad()
             */
            public function postLoad()
            {
                $this->updateAt = new \DateTime();
            }


            /**
             * @ORM\Column(type="string",length=255, nullable=true)
             */
            public $path;

            public $file;

              public function getUploadRootDir()
            {
                return __dir__.'/../../../web/bundles/app/img';
            }

            public function getAbsolutePath()
            {
                return null === $this->path ? null : $this->getUploadRootDir().'/'.$this->path;
            }

            public function getAssetPath()
            {
                return 'uploads/'.$this->path;
            }

            /*
             *@ORM\PrepPersist()
             * @ORM\PreUpdate()
             */
            public function preUpload()
            {
                $this->tempFile = $this->getAbsolutePath();
                $this->oldFile = $this->getPath();
                $this->updateAt = new \DateTime();

                if (null !== $this->file)
                    $this->path = sha1(uniqid(mt_rand(),true)).'.'.$this->file->guessExtension();
            }

            /**
             * @ORM\PostPersist()
             * @ORM\PostUpdate()
             */
              public function upload()
        {
            // the file property can be empty if the field is not required
            if (null === $this->getFile()) {
                return;
            }

            // use the original file name here but you should
            // sanitize it at least to avoid any security issues

            // move takes the target directory and then the
            // target filename to move to
            $this->getFile()->move(
                $this->getUploadRootDir(),
                $this->getFile()->getClientOriginalName()
            );

            // set the path property to the filename where you've saved the file
            $this->path = $this->getFile()->getClientOriginalName();

            // clean up the file property as you won't need it anymore
            $this->file = null;
        }

            /**
             * @ORM\PreRemove()
             */
            public function preRemoveUpload()
            {
                $this->tempFile = $this->getAbsolutePath();
            }

            /**
             * @ORM\PostRemove()
             */
            public function removeUpload()
            {
                if (file_exists($this->tempFile)) unlink($this->tempFile);
            }


            /**
             * Get id
             *
             * @return integer
             */
            public function getId()
            {
                return $this->id;
            }



            public function setPath($path)
            {
                $this->path = $path;

                return $this;
            }

            /**
             * Get path
             *
             * @return string
             */
            public function getPath()
            {
                return $this->path;
            }


            /**
             * Get name
             *
             * @return \string
             */

             public function getName()
            {
                return $this->name;
            }



            /**
             * Set updateAt
             *
             * @param \DateTime $updateAt
             * @return Media
             */
            public function setUpdateAt($updateAt)
            {
                $this->updateAt = $updateAt;

                return $this;
            }

            /**
             * Get updateAt
             *
             * @return \DateTime
             */
            public function getUpdateAt()
            {
                return $this->updateAt;
            }

            /**
             * Set name
             *
             * @param string $name
             * @return Media
             */
            public function setName($name)
            {
                $this->name = $name;

                return $this;
            }


            /**
             * Sets file.
             *
             * @param UploadedFile $file
             */
                public function setFile(UploadedFile $file = null)
            {
                $this->file = $file;
            }


            /**
             * Get file.
             *
             * @return UploadedFile
             */
            public function getFile()
            {
                return $this->file;
            }


        }

Code entity User:


        /**
         *@ORM\OneToOne(targetEntity="Media",cascade={"persist"})
         */
        private $image;

         /**
         * Set image
         *
         * @param \AppBundle\Entity\Media $image
         * @return User
         */
        public function setImage(\AppBundle\Entity\Media $image = null)
        {
            $this->image = $image;

            return $this;
        }

        /**
         * Get image
         *
         * @return \AppBundle\Entity\Media
         */
        public function getImage()
        {
            return $this->image;
        }

code mediaType:

<?php

    namespace AppBundle\Form;

    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\FormBuilderInterface;
    use Symfony\Component\OptionsResolver\OptionsResolver;
    use Symfony\Component\Form\Extension\Core\Type\FileType;

    /**
     * MediaType.
     */
    class MediaType extends AbstractType
    {
        /**
         * {@inheritdoc}
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder->add('file',FileType::class,array('required'=>false));
        }

        /**
         * {@inheritdoc}
         * @param OptionsResolver $resolver
         */
        public function configureOptions(OptionsResolver $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'AppBundle\Entity\Media'
            ));
        }

        /**
         * {@inheritdoc}
         */
        public function getBlockPrefix()
        {
            return 'appbundle_media';
        }


    }

code user type:

<?php

    namespace AppBundle\Form;

    use Symfony\Component\Form\AbstractType;
    use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
    use Symfony\Component\Intl\Intl;
    use Symfony\Component\Form\FormBuilderInterface;
    use AppBundle\Form\MediaType;

    /**
     *Class DefaultController.
     */
    class CondidatType extends AbstractType
    {
        /**
         * function buildForm when I add many attributs added by entity User.
         *
         * @param FormBuilderInterface $builder
         * @param array                $options
         */
        public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options)
        {
            $countries = Intl::getRegionBundle()->getCountryNames();

            $builder
                    ->add('civility', ChoiceType::class, array('choices' => array('Mr' => 'MR', 'Mrs' => 'MRS'), 'expanded' => true, 'multiple' => false))
                    ->add('image',MediaType::class)
                    ->add('first_name', null)
                    ->add('last_name', null)
                    ->add('country', ChoiceType::class, array('choices' => array_flip($countries), 'label' => 'Country'))
                    ->add('phone', null)
                    ->add('birthday',null);
        }

        /**
         * function get Parent Form.
         *
         * @return string
         */
        public function getParent()
        {
            return 'FOS\UserBundle\Form\Type\RegistrationFormType';
        }

        /**
         * name for this form.
         *
         * @return string
         */
        public function getBlockPrefix()
        {
            return 'condidatuser_registration';
        }

        /**
         * name for this form.
         *
         * @return string
         */
        public function getName()
        {
            return $this->getBlockPrefix();
        }

        /**
         * function setDefaultOptions.
         *
         *@param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => 'AppBundle\Entity\User',
            ));
        }
    }

donc par exemple quand il j'upload image .. déplacement fonctionne avec move mais path en base de données est vide

[SYMFONY 3] [Doctrine] No such file or directory

$
0
0

Bonjour,

Je suis bloqué depuis des heure sur un problème qui est survenu après la mis à jour de php sur mon mac.

J'ai mis a jour la version de php de mon mac en version 7.2 et depuis lorsque je tape une commande doctrine (n'importe laquelle) ces erreurs ci apparaissent:

[Doctrine\DBAL\Exception\ConnectionException] An exception occurred in driver: SQLSTATE[HY000] [2002] No such file or directory

[Doctrine\DBAL\Driver\PDOException] SQLSTATE[HY000] [2002] No such file or directory

[PDOException] SQLSTATE[HY000] [2002] No such file or directory

j'ai mis à jour la version de mysql pour voir ci c'est ça mais rien ne change, j'ai trouvé plusieurs solution sur google toutes essayer mais j'ai toujours le problème.

À la base j'ai mis a jour la version de php du mac et non de mamp (qui est déjà à jour) car j'avais des problème avec des fonctions car j'utilise des nouveauté de php7 et le mac était en php5.4.6 à ce niveau la je n'ai plus eu d'erreur mais maintenant j'ai celle ci.

Symfony 3 API REST

$
0
0

Bonjour,

Voila je rencontre un petit problème avec mon code.
J'ai un API login et du coté client, je dois m'authentifier avec, j'ai donc utilisé Mashape:Unirest pour l'appelle de l'API en POST le username et le password dans mon client, tous fonctionne bien je recoit bien une response mais mon probleme maintenant ce que je ne sait pas comment faire pour recupérer le token de l'API afin que l'user connecté posséde le meme role et privilege que dans l'API, des aides seront le bienvenu, tuto ou des asctuces, merci d'avance!

[résolu] Création d'un type form personnalisé

$
0
0

Bonjour,

Je voudrais créer un type Form personnalisé sur le type Entity pour afficher au lieu d'une liste des images ( la table contient des images)

donc j'ai suivi la doc en créeant un type

Ce que je fais

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

->add('taillebagages',ImageType::class,array("label"=>"Taille des bagages",
                "choice_label"=>"imageName",
                "class"=>"AdminBundle\Entity\Taillebagage","attr"=>array("class"=>""),"constraints"=>array(
                new NotBlank(array("groups"=>"flow_parcou_step3"))
            )))<?php

namespace AdminBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\Query\Parameter;
use Doctrine\ORM\QueryBuilder;
use Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader;
use Symfony\Component\Form\Exception\UnexpectedTypeException;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;

class ImageType extends AbstractType
{
    public function configureOptions(OptionsResolver $resolver)
    {


    }

    public function getParent()
    {
        return EntityType::class;
    }
}

J'ai aussi mis en place une twig avec un test pour voir les info resortis

{% block image_widget %}
    {% spaceless %}<div {{ block('widget_container_attributes') }}>

                {% for  child  in form %}
                    sdfdsfdsfdsf
                    {{ dump(child) }}

                {% endfor %}
        </div>

    {% endspaceless %}
{% endblock %}

Ce que je veux

Je voudrais simplement que dans cette twig jai des valuers après je serais sortir les images

Je pense que dans le configureOptions , il me manque des infos mais je trouve pas .

Une idée ?

merci

Viewing all 1542 articles
Browse latest View live