ManyToOne Symfony3

a marqué ce sujet comme résolu.

Bonjour, je souhaite réaliser une jointure entre mon entité produit et mon entité fournisseur, seulement, tous me semble ok mais sa ne marche pas ..

Mon erreur :

Could not resolve type of column "id" of class "AppBundle\Entity\Colombus\Provider" Voici le mapping de l’entité Produit :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php

namespace AppBundle\Entity\Colombus;

use Doctrine\ORM\Mapping as ORM;

/**
 * Product
 *
 * @ORM\Table(name="product")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ProductRepository")
 */
class Product
{
    /**
     * @var int
     *
     * @ORM\Column(name="reference_produit", type="integer")
     * @ORM\Id
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="designation_longue_du_produit", type="string", length=255)
     */
    private $description;

    /**
     * @var string
     *
     * @ORM\Column(name="designation_courte_du_produit", type="string", length=255)
     */
    private $descriptionShort;

    /**
     * @var string
     *
     * @ORM\Column(name="code_a_barre", type="string", length=255)
     */
    private $barCode;

    /**
     * @var string
     *
     * @ORM\ManyToOne(targetEntity="Provider")
     * @ORM\JoinColumn(name="code_fournisseur_principal", referencedColumnName="id")
     */
    private $provider;

Mapping de l’entité fournisseur : Je vous épargne les autres attributs :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

namespace AppBundle\Entity\Colombus;

use Doctrine\ORM\Mapping as ORM;

/**
 * Provider
 *
 * @ORM\Table(name="provider")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ProviderRepository")
 */
class Provider
{
    /**
     * @var int
     *
     * @ORM\Column(name="code_fournisseur", type="string", length=255)
     * @ORM\Id
     */
    private $id;

Le controlleur :

1
2
3
4
5
6
7
8
9
public function buildOrderAction(Request $req, SessionInterface $session){
    $em = $this->getManager($session->get('em'));
    $products = $em->getRepository('AppBundle\Entity\Colombus\Product')->find(3);
    dump($products);

    return $this->render('AppBundle::creation/create_order.html.twig',[
        'products' => $products
    ]);
}

Si sa peux aussi vous aidez :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public function getManager($dbname){
    $paths = array(__DIR__ . '/AppBundle/Entity/Colombus');
    $isDevMode = false;

    $conn = array(
        'dbname' => $dbname,
        'user' => 'root',
        'password' => '',
        'host' => '127.0.0.1',
        'driver' => 'pdo_mysql',
        'charset' => 'utf8',
    );

    $config = Setup::createConfiguration($isDevMode);
    $driver = new AnnotationDriver(new AnnotationReader(), $paths);

    AnnotationRegistry::registerLoader('class_exists');
    $config->setMetadataDriverImpl($driver);

    $em = EntityManager::create($conn, $config);

    return $em;
}

Merci d’avance

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte