0

私は真新しい Symfony2 アプリケーションを持っており、 http://symfony.com/doc/current/book/doctrine.html#custom-repository-classesに従っていると 100% 確信しています。ただし、次のエラーが発生します。

Entity 'Core\MainBundle\Entity\LandingPromotions' has no field 'promotionType'. You can therefore not call 'findByPromotionType' on the entities' repository

私が見逃したものについては手がかりがありません。次のようにコードします。

着陸プロモーション

<?php
namespace Core\MainBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* Core\MainBundle\Entity\LandingPromotions
*
* @ORM\Entity(repositoryClass="Core\MainBundle\Entity\PromotionRepository")
* @ORM\Table(name="landing_promotions")
*/
class LandingPromotions
{
//Normal entity stuff
}

PromotionRepository.php

namespace Core\MainBundle\Entity;

use Doctrine\ORM\EntityRepository;

class PromotionRepository extends EntityRepository
{
public function findByPromotionType($typeId)
{
}
}

コントローラ

namespace Core\MainBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Core\MainBundle\Entity\Game;
use Core\MainBundle\Entity\LandingPromotions as LandingPromotions;

class GameController extends Controller
{
/**
* @Route("{_locale}/games/")
* @Template()
*/
public function indexAction($_locale)
{
$lp_repo = $this->getDoctrine()->getRepository('CoreMainBundle:LandingPromotions');

$lp_repo->findByPromotionType(2);
}
}
4

1 に答える 1

1

いろいろと調べた結果、エンティティが PHP アノテーションではなく、XML バージョンを使用していることに気付きました。これがどのように混同されたのかはわかりませんが、それは明日の問題です.

于 2013-01-03T22:04:25.943 に答える