[Symfony 2] geen repository

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Topicstarter
src/Devrant/Stats/StatBundle/Entity/Coffeecorner.php

code:
1
2
3
4
5
6
7
8
9
10
11
12
<?php

namespace Devrant\Stats\StatBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="Devrant\Stats\StatBundle\Repository\CoffeecornerRepository")
 */
class Coffeecorner
{
......


Vervolgens doe ik


code:
1
php app/console doctrine:generate:entities Devrant
Generating entities for namespace "Devrant"
> backing up Coffeecorner.php to Coffeecorner.php~
> generating Devrant\Stats\StatBundle\Entity\Coffeecorn
> backing up Topicdata.php to Topicdata.php~
> generating Devrant\Stats\StatBundle\Entity\Topicdata
En dus geen repository aanwezig.

Nu heb ik in de namespace /resources/config/doctrine/Coffeecorner.orm.xml het volgende toegevoegd

code:
1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
  <entity name="Devrant\Stats\StatBundle\Entity\Coffeecorner" table="coffeecorner"
    repository-class="Devrant\Stats\StatBundle\Repository\CoffeecornerRepository">


Maar dat geeft geen verschil.

Overigens, als ik de code nu aanroep, bijvoorbeeld;

code:
1
2
em->getRepository('DevrantStatBundle:CoffeecornerRepository')
                    ->getPostsByUserTopic($value, $topicIteration);


Dan zoekt hij naar 'entity's' map ipv repository
No mapping file found named 'C:\wamp\www\src\Devrant\Stats\StatBundle\Resources\config\doctrine/CoffeecornerRepository.orm.xml' for class 'Devrant\Stats\StatBundle[b]Entity[/b]\CoffeecornerRepository'.

[ Voor 9% gewijzigd door Douweegbertje op 26-07-2014 23:17 ]


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Topicstarter
ok.. heb het nu soort van zelf opgelost.

De annotation heb ik veranderd naar

code:
1
2
3
4
/**
 *
 * @ORM\Entity(repositoryClass="Devrant\Stats\StatBundle\Entity\CoffeecornerRepository")
 */


en toen kwam hij opeens tevoorschijn... (dus één * erbij gezet)

Vervolgens riep ik de repository direct aan, terwijl je gewoon de entitiy moet pakken, want de repository extends.. Dus nu werkt letterlijk alles.

Acties:
  • 0 Henk 'm!

  • hylke94
  • Registratie: Maart 2012
  • Laatst online: 07-07 18:59
Heb je de cache ook weggegooid? Als er iets goed mis is, zegt hij bij deze actie meestal ook wel wat er mis is... En anders eens "--env=prod" aan je console-actie toevoegen.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Nu lijk je entities en repositories door elkaar te zetten in 1 map, is dat wat je wilt? Ik verdeel ze altijd in eigen mappen. Het ophalen van de repository gaat altijd op naam van de entity en niet op naam van de repository ook.

Dit is bovendien meer een vraag over Doctrine 2 ipv Symfony 2.

[ Voor 12% gewijzigd door Cartman! op 27-07-2014 13:17 ]


Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 05:50

Douweegbertje

Wat kinderachtig.. godverdomme

Topicstarter
hylke94 schreef op zondag 27 juli 2014 @ 10:37:
Heb je de cache ook weggegooid? Als er iets goed mis is, zegt hij bij deze actie meestal ook wel wat er mis is... En anders eens "--env=prod" aan je console-actie toevoegen.
jup en jup. Ik snap er eigenlijk te ballen niet van. Meerdere berichten gaven ook aan om cache te wissen, dus dat heb ik ook toen direct gedaan.

@Cartman! Ja, is eigenlijk wel doctrine, maar goed, tis in de 'bundle' van symfony. Niet helemaal zeker, maar ik dacht dat er een aantal verschillen in zaten.
Verder kan je inderdaad overwegen om het in een repository mapje te doen, nu lukt mij dit even simpelweg niet en ik ben nu in elk geval blij dat ik uberhaubt een repository heb gekregen.
Overigens is het dan alsnog een twijfelgeval of ik het zou gebruiken, het wordt echt een verlengde van de entitiy en er komt ook maar één repository file bij. Voor nu best wel duidelijk, al kan ik mij voorstellen dat je bij de wat grotere projecten een apart mapje aanmaakt.

Anyways, nog bedankt voor jullie input.

Acties:
  • 0 Henk 'm!

  • Geo001
  • Registratie: November 2009
  • Laatst online: 14:25
@douweegbertje is het nu gelukt?

Waarom zou je de doctrine mapping in xml doen en niet in de entity zelf?

code:
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
<?php

namespace Devrant\Stats\StatBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name = "coffeecorner")
 * @ORM\Entity(repositoryClass="Devrant\Stats\StatBundle\Repository\CoffeecornerRepository")
 */
class Coffeecorner
{
/**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
   
    /**
     * @var string $title
     *
     * @ORM\Column(type="string", length=255)
     */
    protected $title;

    .......etc.....
}


en dan natuurlijk wel Repository\CoffeecornerRepository aanmaken ;)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
namespace Devrant\Stats\StatBundle\Repository;

use Doctrine\ORM\EntityRepository;

/**
 * Class CoffeecornerRepository
 * @package Devrant\Stats\StatBundle\Repository
 */
class CoffeecornerRepository extends EntityRepository
{
    public function getPostsByUserTopic(){
        .......
    }
}

[ Voor 1% gewijzigd door Geo001 op 29-07-2014 13:03 . Reden: Toevoegen van tabelnaam aan coffeecorner entity ]

Pagina: 1