title: Symfony 4, find() an entity
body: <p>Thanks to the symfony doc <a href="https://symfony.com/doc/current/doctrine.html#updating-an-object" rel="nofollow noreferrer">https://symfony.com/doc/current/doctrine.html#updating-an-object</a>, i am able to use get/set methods from my entity called 'Produit'.</p>
  
  <p>But when i call the method  setProduit() (from Paniers entity) Phpstorm say "expected App\Entity\Paniers, got Object" for the $produitSelected.</p>
  
  <p>i don't know why phpstorm say that because i'm able to use methods, what's the problem ?
  find() return an entity object, right ?</p>
  
  <pre><code>class PaniersController extends AbstractController
  {
  
      /**
      * @Route("/paniers/add/{id}", name="paniers.add")
      */
      public function addPanier(Request $request, Environment $twig, RegistryInterface $doctrine, $id)
      {
          $produitSelected = $doctrine-&gt;getRepository(Produit::class)-&gt;find($id);
          if (!$produitSelected) {
              throw $this-&gt;createNotFoundException(
                  'Pas de produit trouvé pour l\' id : '.$id
              );
          }
          $lignePanier=$doctrine-&gt;getRepository(Paniers::class)-&gt;findOneBy(['produit' =&gt; $produitSelected, 'user' =&gt;$this-&gt;getUser()]);
          if($produitSelected-&gt;getStock()&gt;0){
              if ($lignePanier){
                  $quantite =$lignePanier-&gt;getQuantite();
                  $lignePanier-&gt;setQuantite($quantite+1);
              } else {
                  $lignePanier = new Paniers();
                  $lignePanier-&gt;setUser($this-&gt;getUser())
                  -&gt;setDateAjoutPanier(new \DateTime(date('Y-m-d')))
                  -&gt;setQuantite(1)
                  -&gt;setProduit($produitSelected);
              }
              $doctrine-&gt;getManager()-&gt;persist($lignePanier);
              $produitSelected-&gt;setStock($produitSelected-&gt;getStock()-1);
              $doctrine-&gt;getManager()-&gt;persist($produitSelected);
              $doctrine-&gt;getManager()-&gt;flush();
          }
      }
  }
  
  &lt;?php
  
  namespace App\Entity;
  
  use Doctrine\ORM\Mapping as ORM;
  
  /**
   * @ORM\Entity(repositoryClass="App\Repository\PaniersRepository")
   * @ORM\Table(name="paniers")
   */
  class Paniers
  {
  
  //...
  
     /**
     * @ORM\ManyToOne(targetEntity="Produit")
     * @ORM\JoinColumn(name="produit_id", referencedColumnName="id")
     */
    private $produit;
  
       public function getProduit(): ?Produit
    {
        return $this-&gt;produit;
    }
  
    public function setProduit(?Produit $produit): self
    {
        $this-&gt;produit = $produit;
        return $this;
    }
  }
  </code></pre>