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
Multi Step form dans symfony
Récupérer les valeurs de variables d'une entité dans une autre
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
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
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()"
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”
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
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
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
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
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
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
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
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
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
Bonjour,
c'est quoi les différences entre listeners et subscribers en symfony ?
différence entre listener et subscriber
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
A la decouverte de Doctrine
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
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
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.