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

Multi Step form dans symfony

$
0
0

Bonjour
je souhaite créer un formulaire ç plusieur étape, je suis tomber sur craue/formflow-bundle toutefois j'ai des difficultés pour l'implementer.
Quelqu'un à t'il déja utilisé celà de bout en bout et peut on m'aider à le faire simplement


Récupérer les valeurs de variables d'une entité dans une autre

$
0
0

Bonjour,

J'aimerais récupérer les valeurs de variables d'une entité dans une autre. Je m'explique:

  • J'ai une entité Company avec la propriété name et logo
  • J'ai l'entité Job avec une vue qui liste tous les jobs. J'aimerais afficher le name et logo dans la vue Job.

J'ai en premier fait un toString() sur la propriété name dans Company et ça marche mais je ne sais pas comment rajouter une seconde propriété.
Voici:

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

Création de formulaire en ligne de commande

$
0
0

Bonjour,

Je cherche à creer en ligne de commande des formulaires à l'image de mes entités pour supprimer, modifier et creer des données.
Jai reussi à faire une fois, mais je ne retrouve plus la commande.
SVP quelqu'un peut m'aider avec la commande.

Ce que je fais

j'ai pu avoir la commande suivante mais je n'arrive pas à exécuter

. /symfony doctrine:build-forms

Erreur Appeler 2 controllers dans une même vue

$
0
0

Bonjour,

Sur une même vue(job/index.html.twig), je veux faire appel à 2 controllers. Est ce possible ?
Voici mon fichier job/index.html.twig et à l'interieur j'ai mis une include : {{ include('includes/features.html.twig') }}

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

{% block title %}Accueil{% endblock %}

{% block body %}

    {{ include('includes/part1home.html.twig') }}
    {{ include('includes/features.html.twig') }}
    <section class="jobs">
    <div class="container">
        <div class="row heading">
            <h2>Emplois récents</h2>
            <p>Trouvez l'emploi que vous méritez</p>
        </div>
        <div class="companies">
         {% for job in jobs %}
            <div class="company-list">
                <div class="row">
                    <div class="col-md-2 col-sm-2">
                        <div class="company-logo">
                            <img src="{{ asset('uploads/images/' ~ job.company.logo) }}" class="img-responsive" alt="" />
                        </div>
                    </div>
                    <div class="col-md-10 col-sm-10">
                        <div class="company-content">
                            <h3><a href="{{ path('job_show', {slug: job.slug}) }}">
                    {{ job.title }}
                </a>
                <span class="full-time">{{ job.contrat }}</span>
                {# <span class="part-time">Temps partiel</span>
                <span class="freelance">Freelance</span>
                <span class="internship">Stage</span> #}
                </h3>
                            <p>
                            <span class="date_pub"><i class="fa fa-calendar"></i> {{ job.publishedAt ? job.publishedAt|date('Y-m-d H:i:s') : '' }}</span>
                            <span class="company-name"><i class="fa fa-briefcase"></i>{{ job.company.name }}</span>
                            <span class="company-location"><i class="fa fa-map-marker"></i> {{ job.adresse }}</span>
                            <span class="package"><i class="fa fa-money"></i>{{ job.salary }}€</span>
                            </p>
                        </div>
                    </div>
                </div>

            </div>
            {% else %}
             <div class="company-list">
                <div class="row">
                    <p>Pas d'emplois trouvés </p>
                </div>

            </div>

             {% endfor %}


        </div>
        <div class="row">
            <input type="button" class="btn brows-btn" value="Brows All Jobs" />
        </div>
    </div>
</section>
    {{ include('includes/testimonials.html.twig') }}
    {{ include('includes/members_cards.html.twig') }}
    {{ include('includes/newsletter.html.twig') }}

{% endblock %}

Et voici mon fichier includes/features.html.twig :

<section class="features">
    <div class="container">
    {% for feature in features %}
        <div class="col-md-4 col-sm-4">
            <div class="features-content">
                <span class="box1"><span aria-hidden="true" class="icon-dial"></span></span>
                <h3>{{ feature.titre1 }}</h3>
                <p>{{ feature.description1 }}</p>
            </div>
        </div>

        <div class="col-md-4 col-sm-4">
            <div class="features-content">
                <span class="box1"><span aria-hidden="true" class="icon-search"></span></span>
                <h3>{{ feature.titre2 }}</h3>
                <p>{{ feature.description2 }}</p>
            </div>
        </div>

        <div class="col-md-4 col-sm-4">
            <div class="features-content">
                <span class="box1"><span aria-hidden="true" class="icon-printer"></span></span>
                <h3>{{ feature.titre3 }}</h3>
                <p>{{ feature.description3 }}</p>
            </div>
        </div>

        <div class="col-md-4 col-sm-4">
            <div class="features-content">
                <span class="box1"><span aria-hidden="true" class="icon-dial"></span></span>
                <h3>{{ feature.titre4 }}</h3>
                <p>{{ feature.description4 }}</p>
            </div>
        </div>

        <div class="col-md-4 col-sm-4">
            <div class="features-content">
                <span class="box1"><span aria-hidden="true" class="icon-search"></span></span>
                <h3>{{ feature.titre5 }}</h3>
                <p>{{ feature.description5 }}</p>
            </div>
        </div>

        <div class="col-md-4 col-sm-4">
            <div class="features-content">
                <span class="box1"><span aria-hidden="true" class="icon-printer"></span></span>
                <h3>{{ feature.titre6 }}</h3>
                <p>{{ feature.description6 }}</p>
            </div>
        </div>
    {% endfor %}
    </div>
</section>

Dans mon controller :

<?php

namespace App\Controller;

use App\Entity\Feature;
use App\Form\FeatureType;
use App\Repository\FeatureRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

/**
 * @Route("/feature")
 */
class FeatureController extends AbstractController
{
    /**
     * @Route("/", name="feature_index", methods={"GET"})
     */
    public function index(FeatureRepository $featureRepository): Response
    {
        return $this->render('includes/features.html.twig', [
            'features' => $featureRepository->findAll(),
        ]);
    }

    }
    ```

    Et j'ai cette erreur dans templates/includes/features.html.twig (line 5)  ==>{% for feature in features %} 
    L'erreur est: Variable "features" does not exist.


Fonction "render()"

$
0
0

Bonjour,

Voilà je débute avec Symfony et je suis le tutoriel vidéo mais je rencontre un petit problème avec mon code.
J'ai cette erreur "Call to a member function render() on null" et j'ai bien créé la page "home.html.twig" comme dans le tutoriel vidéo.

Voici mon code :
HomeController.php

<?php
    namespace App\Controller;

    use Symfony\Component\HttpFoundation\Response;
    use Twig\Environment;

    class HomeController
    {
        /**
         * @var Environment
         */

        private  $twig;

        public function _construct(Environment $twig)
        {
            $this->twig = $twig;
        }
        public function index(): Response
        {
            return new Response($this->twig->render('pages/home.html.twig'));
        }
    }
?>

routes.yaml

home:
  path: /
  controller: App\Controller\HomeController::index

Pourriez-vous m'aider ?

symfony4 doctrine database migration erreur “could not find drive”

$
0
0

Bonjour,

Je travaille avec symfony4 sur une base de données avec ORM Doctrine. Je suis sur windows.
J'ai d'abord créé une entité de classe (make: entity).
Puis l'étape de migration (php bin / console: migration).
Mais elle ne fonctionne pas car "Une exception s'est produite dans le pilote: impossible de trouver le pilote".

Pour essayer de résoudre le problème, j'ai essayé d'utiliser différentes versions de php (php7.2.21 et php7.3.8) et j'ai ajouté "extension = php_pdo_mysql.dll" dans php.ini-development et php.ini-production.
Mai rien de concluant.

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

L'erreur que j'ai est :

C:/wamp64/bin/php/php7.2.21/php.exe bin/console make:migration

In AbstractMySQLDriver.php line 115: An exception occured in driver: could not find driver

In PDOConnection.php line 47: could not find driver

In PDOConnection.php line 43: could not find driver```

Savez-vous comment résoudre ce problème car cela m'empeche d'avancer dans mon apprentissage?

Merci d'avance

Entité avec mitli-tables

$
0
0

Bonjour,

Je souhaite refaire un projet avec symfony 4, j'ai un problème avec la base de donnée existante que il y a plusieurs table dynamiques. Les tables sont nommées avec des id auto-incrimémentés exmp: nom-table_140, nom-table_141, ......
Je souhaite crée une seule entité pour ces tables mais les requetes selon de l'id passé en parametres.
C'est possible avec doctrine de symfony 4? Pouvez vous m'aider.
Merci en avance

Ce que je fais

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

Entourez votre code pour bien le mettre en forme

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 :(

Gestion de rdv

$
0
0

Bonjour,

Je suis sur un projet de site pour une sage-femme sur Synfony 4. Je rencontre un obstacle au niveau du formulaire de prise de rdv.
J'ai une entity Booking pour les rdv avec 4 champs (nom, prénom, type de consultation et date) et une autre entity Horaire en relation avec celle-ci ou sont enregistré tout les créneaux horaire disponible.
Dans le formulaire, l'utilisateur choisi dabord une date de rdv puis ensuite un horaire.
Ce que j'aimerai faire, c'est que suivant la date choisi, le champ horaire n'affiche que les heures disponible.
Peut-être avec un eventListener?

Merci d'avance.


Fonction copyFile() - Webpack Encore - Symfony 4

$
0
0

Bonjour,

Je suis actuellement sur un projet sous Symfony 4 sur lequel j'utilise un thème bootstrap pour accélérer la mise en place de contenus.

J'utilise le module webpack encore afin de faciliter la gestion des assets.
Le thème bootstrap est le suivant : https://themes.getbootstrap.com/product/front-multipurpose-responsive-template/

Je souhaiterais connaitre les bonnes pratiques concernant la gestion des assets liées à ce thème Bootstrap.
Pour le moment j'ai récupéré le dossier "assets" et je l'ai directement ajouté dans un sous-dossier nommé "front" dans le dossier "assets" du projet Symfony.

projet
-- assets
    --front
        --assets
            --css
            --svg
            --vendors
            --js
            ...

J'ai ensuite utilisé la fonction copyFiles() dans le fichier de configuration webpack.config.js :

Encore.
   .copyFiles({from: './assets/front', to:'front/[path][name].[ext]'})

Je souhaiterais savoir quelle sont les bonnes pratiques concernant la gestion des assets dans ce cas précis ?

Merci pour votre attention et vos conseils

Symfony 4 Multiple guard authenticator

$
0
0

Bonjour à tous, j'ai un petit soucis j'aimerai crée deux LoginFormAuthenticator l'un pour les utilisateur front et l'autre pour les utilisateur en Back.
J'ai regarder la doc officiel de symfony mais cependant rien ne marche pour moi, quand je tape /profile je suis toujours rediriger vers le formulaire de login pour l'administrateur.

Voici mon code
Security.yml

security:
    encoders:
        App\Entity\Users:
            algorithm: 'argon2i'
            # maximum memory (in KiB) that may be used to compute the Argon2 hash
            memory_cost: 1024
            #  number of times the Argon2 hash algorithm will be run
            time_cost: 2
            # number of threads to use for computing the Argon2 hash
            threads: 2
    # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
    providers:
        app_user_provider:
            entity:
                class: App\Entity\Users
                property: username
    firewalls:

        main:
            anonymous: true
            guard:
                authenticators:
                    - App\Security\LoginFormAuthenticator
            logout:
                path:   app_logout
            remember_me:
                secret: '%kernel.secret%'
                lifetime: 604800
                path: /
        front:
            anonymous: true
            guard:
                authenticators:
                    - App\Security\FrontLoginFormAuthenticator
            logout:
                path:   app_logout
            remember_me:
                secret: '%kernel.secret%'
                lifetime: 604800
                path: /

            # activate different ways to authenticate

            # http_basic: true
            # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate

            # form_login: true
            # https://symfony.com/doc/current/security/form_login_setup.html
    role_hierarchy:
        ROLE_ADMIN:          ROLE_ADMIN
        ROLE_USER:          [ROLE_USER]


    # Easy way to control access for large sections of your site
    # Note: Only the *first* access control that matches will be used
    access_control:
         - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
         - { path: ^/admin, roles: ROLE_ADMIN }
         - { path: ^/profile, roles: ROLE_USER }

LoginFormAuthenticator pour le BACK

<?php

namespace App\Security;

use App\Entity\Users;
use Doctrine\ORM\EntityManagerInterface;

use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Csrf\CsrfToken;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator;
use Symfony\Component\Security\Http\Util\TargetPathTrait;

/**
 * Class LoginFormAuthenticator
 *
 * @package App\Security
 *
 */
class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
{
    use TargetPathTrait;

    private $entityManager;

    private $router;

    private $csrfTokenManager;

    private $passwordEncoder;

    private $authorizationChecker;

    /**
     * LoginFormAuthenticator constructor.
     *
     * @param EntityManagerInterface        $entityManager
     * @param RouterInterface               $router
     * @param CsrfTokenManagerInterface     $csrfTokenManager
     * @param UserPasswordEncoderInterface  $passwordEncoder
     * @param AuthorizationCheckerInterface $authorizationChecker
     */
    public function __construct(
        EntityManagerInterface $entityManager,
        RouterInterface $router,
        CsrfTokenManagerInterface $csrfTokenManager,
        UserPasswordEncoderInterface $passwordEncoder,
        AuthorizationCheckerInterface $authorizationChecker
    ) {
        $this->entityManager = $entityManager;
        $this->router = $router;
        $this->csrfTokenManager = $csrfTokenManager;
        $this->passwordEncoder = $passwordEncoder;
        $this->authorizationChecker = $authorizationChecker;
    }

    /**
     * {@inheritdoc}
     */
    public function supports(Request $request)
    {
        return 'app_login' === $request->attributes->get('_route')
               && $request->isMethod('POST');
    }

    /**
     * {@inheritdoc}
     */
    public function getCredentials(Request $request)
    {
        $credentials = [
            'email'      => strtolower($request->request->get('email')),
            'password'   => $request->request->get('password'),
            'csrf_token' => $request->request->get('_csrf_token'),
        ];
        $request->getSession()->set(
            Security::LAST_USERNAME,
            $credentials['email']
        );

        return $credentials;
    }

    /**
     * {@inheritdoc}
     */
    public function getUser($credentials, UserProviderInterface $userProvider)
    {
        $token = new CsrfToken('authenticate', $credentials['csrf_token']);
        if (!$this->csrfTokenManager->isTokenValid($token)) {
            throw new InvalidCsrfTokenException();
        }

        $user = $this->entityManager->getRepository(Users::class)->findOneBy(['email' => $credentials['email']]);
        if (!$user) {
            // fail authentication with a custom error
            throw new CustomUserMessageAuthenticationException('error.invalid_user_account');
        }
        // user disabled
        if (!$user->isEnabled()) {
            throw new CustomUserMessageAuthenticationException('error.account_disabled');
        }

        return $user;
    }

    /**
     * {@inheritdoc}
     */
    public function checkCredentials($credentials, UserInterface $user)
    {
        return $this->passwordEncoder->isPasswordValid($user, $credentials['password']);
    }

    /**
     * {@inheritdoc}
     */
    public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
    {

        if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
            return new RedirectResponse($targetPath);
        }

        $urlName = $this->authorizationChecker->isGranted(Users::ROLE_ADMIN) ? 'admin_index' : 'index_front';
//            : ($this->authorizationChecker->isGranted(Users::ROLE_CHEF_RESEAUX) ? 'app_login' : '');

        return new RedirectResponse($this->router->generate($urlName));
    }

    /**
     * {@inheritdoc}
     */
    protected function getLoginUrl()
    {
        return $this->router->generate('app_login');
    }
}

LoginFormAuthenticator pour le Front

<?php

namespace App\Security;

use App\Entity\Users;
use Doctrine\ORM\EntityManagerInterface;

use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Csrf\CsrfToken;
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator;
use Symfony\Component\Security\Http\Util\TargetPathTrait;

/**
 * Class LoginFormAuthenticator
 *
 * @package App\Security
 *
 */
class FrontLoginFormAuthenticator extends AbstractFormLoginAuthenticator
{
    use TargetPathTrait;

    private $entityManager;

    private $router;

    private $csrfTokenManager;

    private $passwordEncoder;

    private $authorizationChecker;

    /**
     * LoginFormAuthenticator constructor.
     *
     * @param EntityManagerInterface        $entityManager
     * @param RouterInterface               $router
     * @param CsrfTokenManagerInterface     $csrfTokenManager
     * @param UserPasswordEncoderInterface  $passwordEncoder
     * @param AuthorizationCheckerInterface $authorizationChecker
     */
    public function __construct(
        EntityManagerInterface $entityManager,
        RouterInterface $router,
        CsrfTokenManagerInterface $csrfTokenManager,
        UserPasswordEncoderInterface $passwordEncoder,
        AuthorizationCheckerInterface $authorizationChecker
    ) {
        $this->entityManager = $entityManager;
        $this->router = $router;
        $this->csrfTokenManager = $csrfTokenManager;
        $this->passwordEncoder = $passwordEncoder;
        $this->authorizationChecker = $authorizationChecker;
    }

    /**
     * {@inheritdoc}
     */
    public function supports(Request $request)
    {
        return 'front_login' === $request->attributes->get('_route')
               && $request->isMethod('POST');
    }

    /**
     * {@inheritdoc}
     */
    public function getCredentials(Request $request)
    {
        $credentials = [
            'email'      => strtolower($request->request->get('email')),
            'password'   => $request->request->get('password'),
            'csrf_tokens' => $request->request->get('_csrf_tokens'),
        ];
        $request->getSession()->set(
            Security::LAST_USERNAME,
            $credentials['email']
        );

        return $credentials;
    }

    /**
     * {@inheritdoc}
     */
    public function getUser($credentials, UserProviderInterface $userProvider)
    {
        $token = new CsrfToken('authenticate', $credentials['csrf_tokens']);
        if (!$this->csrfTokenManager->isTokenValid($token)) {
            throw new InvalidCsrfTokenException();
        }

        $user = $this->entityManager->getRepository(Users::class)->findOneBy(['email' => $credentials['email']]);
        if (!$user) {
            // fail authentication with a custom error
            throw new CustomUserMessageAuthenticationException('error.invalid_user_account');
        }
        // user disabled
        if (!$user->isEnabled()) {
            throw new CustomUserMessageAuthenticationException('error.account_disabled');
        }

        return $user;
    }

    /**
     * {@inheritdoc}
     */
    public function checkCredentials($credentials, UserInterface $user)
    {
        return $this->passwordEncoder->isPasswordValid($user, $credentials['password']);
    }

    /**
     * {@inheritdoc}
     */
    public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
    {

        if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
            return new RedirectResponse($targetPath);
        }

        $urlName = $this->authorizationChecker->isGranted(Users::ROLE_USER) ? 'front_index' : 'index_front';


        return new RedirectResponse($this->router->generate($urlName));
    }

    /**
     * {@inheritdoc}
     */
    protected function getLoginUrl()
    {
        return $this->router->generate('front_login');
    }
}

Merci d'avance pour votre aide

A la decouverte de Doctrine

$
0
0

Bonjour,

je debute avec Symfony et je suis le tutoriel Symfony par l'exemple et je bloque déja au 3 chapitre (à la decouverte de Doctrine).
quand je clique sur lien mon-premier-bien-1 (comme dans la video 00:39:00) au lieu de d'afficher ma vue "show.html.twig" je tombe sur cette erreur:
Case mismatch between loaded and declared class names: "App\controller\PropertyController" vs "App\Controller\PropertyController".

voici ma class PropertyController

<?php

namespace App\Controller;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\PropertyRepository;
use App\Entity\Property;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Twig\Environment;

class PropertyController extends AbstractController

{
/**
* @var PropertyRepository
/
private $repository;
/
*
* @var ObjectManager
*/
private $em;

public function __construct(PropertyRepository $repository, ObjectManager $em)
{
    $this->repository = $repository;
    $this->em = $em;
}


public function index()

{


    return $this->render('property/index.html.twig',[
        'current_menu' => 'properties'
    ]);
}
  /**
   * @return Response
   */
public function show($slug, $id): Response
{
    $property = $this->repository->find($id);
    return $this->render('property/show.html.twig',[
        'property' =>$property,
        'current_menu' => 'properties'
    ]);
}

}
je voudrais solliciter votre aide et expertise pour continuer mon apprentissage

Supprimer une relation OneToOne

$
0
0

Salut les amis

Pourquoi lorsque je veux supprimer de la base de donnée un objet qui en relation OnToOne

J'ai une érreur du type

Notice: Undefined index: nomPropriete

Comment résoudre ce problème et pouvoir supprimer les objets ?

Relation Table à plusieurs couches

$
0
0

Bonjour,

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

Ce que je fais

J'ai une entité User qui peut créer un projet dans lequel il peut créer des personnages et des chapitres. Tout fonctionnait parfaitement jusqu'au moment ou j'ajoute le formulaire de création de chapitres dans lesquels on peut ajouter un ou plusieurs personnages. Le formulaire s'affiche correctement ainsi que la choicetype des personnages mais lors du submit je me retrouvais avec un message d'erreur de symfony.
Lien Github de mon projet https://github.com/Alzeo/Prism/tree/master/src

Entity Personnages
 /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Projet", inversedBy="personnages", cascade={"persist", "remove"})
     */
    private $projet;

    Entity projet

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Personnages", cascade={"persist", "remove"}, mappedBy="projet")
     */
    private $personnages;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Chapitre", cascade={"persist", "remove"}, mappedBy="projet")
     */
    private $chapitres;

    Entity Chapitre

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Personnages", mappedBy="chapitre")
     */
    private $personnages;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Projet", inversedBy="chapitres")
     */
    private $projet;


Message d'erreur de symfony :
A new entity was found through the relationship 'App\Entity\Chapitre#projet' that was not configured to cascade persist operations for entity: App\Entity\Projet@0000000000221259000000004073b06e. 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\Projet#__toString()' to get a clue.

Je ne vois pas bien ou peut se situer l'erreur. Merci par avance pour votre aide.

Envoi email : ne pars pas

$
0
0

Bonjour à tous,

J'avais un projet sous SF3 que je viens de finir de migrer sous SF4.
Tout se passe très bien et l'application est fonctionnelle.

Seul frein à la mise en production : l'envoi d'email qui ne fonctionne pas.

Je m'explique...
Je le fais via swiftmailer.
La génération de l'email (dans un service) fonctionne très bien.
Quand je vais dans le profiler, j'ai bien un email qui a été créé.
Seulement, il ne part pas de l'application.

dans le fichier .env j'ai :
MAILER_URL=smtp://......... (mot de passe converti avec urlencode)
(j'ai prevu une variable MAILER_DSN au cas où qui contient la même chose que MAILER_URL)

Précision : avec ma config, l'envoi d'email en local fonctionne et attéri bien dans ma boîte gmail !!! (win10 + wampserver)
Y compris avec le webser symfony...

Mon server est sur AWS avec CentOs
Si quelqu'un a une solution à me proposer ce serait super !!!

Merci à tous !

listener et subscriber

$
0
0

Bonjour,
c'est quoi les différences entre listeners et subscribers en symfony ?


différence entre listener et subscriber

$
0
0

Bonjour,
en symfony il existe listener et subscriber c'est quoi les différences entre listeners et subscribers en symfony ?

Symfony, différence entre listener et subscriber

$
0
0

Bonjour,
en symfony il existe listener et subscriber c'est quoi les différences entre listeners et subscribers en symfony ?

A la decouverte de Doctrine

$
0
0

Bonjour,

je debute avec Symfony et je suis le tutoriel Symfony par l'exemple et je bloque déja au 3 chapitre (à la decouverte de Doctrine).
quand je clique sur lien mon-premier-bien-1 (comme dans la video 00:39:00) au lieu de d'afficher ma vue "show.html.twig" je tombe sur cette erreur:
Case mismatch between loaded and declared class names: "App\controller\PropertyController" vs "App\Controller\PropertyController".

voici ma class PropertyController

<?php

namespace App\Controller;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\PropertyRepository;
use App\Entity\Property;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Twig\Environment;

class PropertyController extends AbstractController

{
/**
* @var PropertyRepository
/
private $repository;
/
*
* @var ObjectManager
*/
private $em;

public function __construct(PropertyRepository $repository, ObjectManager $em)
{
    $this->repository = $repository;
    $this->em = $em;
}


public function index()

{


    return $this->render('property/index.html.twig',[
        'current_menu' => 'properties'
    ]);
}
  /**
   * @return Response
   */
public function show($slug, $id): Response
{
    $property = $this->repository->find($id);
    return $this->render('property/show.html.twig',[
        'property' =>$property,
        'current_menu' => 'properties'
    ]);
}

}
je voudrais solliciter votre aide et expertise pour continuer mon apprentissage

Symfony 4 par l'exemple / Gestion des option

$
0
0

Bonjour,

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

Ce que je fais

suivant la vidéo 9 du tutoriel (00:07:02) après avoir tapé la commande php bin/console make:crud Option,
Symfony crée le crud option et les vues twig ainsi que les routes. là tout fonctionne parfaitement mais quand j'entre url localhost:8000/option

Ce que j'obtiens

An exception occurred while executing 'SELECT t0.id AS id_1, t0.name AS name_2 FROM option t0':

SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'option t0' à la ligne 1

et je ne sais quoi faire si quel fichier modifer pour corriger l'erreur. je demande votre aide.
merci

Symfony 4 par l'exemple - ID utilistaeur

$
0
0

Bonjour,

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

Ce que je fais

J'ai mis une relation ManyToOne surl'entitée User

/**
     * @ORM\ManyToOne(targetEntity="App\Entity\Users", inversedBy="property")
 */
 private $user;

Voici comment je récupere l'ID de l'utilisateur connecté, pour l'ajouter au formulaire.

$form = $this->createForm(
              PropertyType::class, 
              $property,
              array('user' => $this->getUser()->getId())
 );

Voici comment je récupere l'ID de l'utilisateur connecté, pour l'ajouter au formulaire. L'ID est bien récupérer.

 public function buildForm(FormBuilderInterface $builder, array $options)
  {
        $user = $options['user'];

....
        ->add('user', HiddenType::class, [
                'data' => $user,
                'data_class' => null,
        ])
.....

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' =>Property::class,
            'translation_domain' => 'forms',
        ]);
        $resolver->setRequired('user');
    }
}


Ce que j'obtiens

Le problème c'est à l'envoie du formulaire j'obtiens cette erreur :

Expected argument of type "App\Entity\Users or null", "string" given at property path "user".

Si je compends bien il me dit que le type envoyé n'est pas le bon.

J'essayer plusieurs méthodes mais je suis bloqué à ce niveau (sur l'envoie de l'ID).

Merci par avance.

Viewing all 1542 articles
Browse latest View live