[英]Symfony3 repository method doesn't work
我試圖從我的控制器ArticleController調用存儲庫ArticleRepository中的方法。 但是它說:
Undefined method 'afficheArticle'. The method name must start with either findBy or findOneBy!
我的實體文章:(Entity \\ Article.php)
/**
* Article
*
* @ORM\Table(name="Article", indexes={@ORM\Index(name="I_FK_Article_TypeArticle", columns={"idTypeArticle"})})
* @ORM\Entity(repositoryClass="erp-gkeep\new_erp\gkeepBundle\Repository\ArticleRepository")
*/
class Article
{
我的ArticleController(Controller \\ ArticleController)
/**
* @Route("viewArticle2", name="viewArticle2")
*/
public function listAction2()
{
$data = $this->getDoctrine()->getRepository('gkeepBundle:Article')->afficheArticle();
我的ArticleRepository
<?php
/**
* Created by PhpStorm.
*/
namespace gkeepBundle\Repository;
use Doctrine\ORM\EntityRepository;
class ArticleRepository extends EntityRepository
{
public function afficheArticle(){
$em=$this->getEntityManager();
$query = $em->createQuery(
'SELECT a.reference, a.designationfr, a.designationen, a.plan, a.url, a.datecreation, a.idtypearticle
FROM gkeepBundle:Article a
'
);
$articles = $query->getArrayResult();
return $articles;
}
}
如果有人可以幫助我! 我很確定這是一個愚蠢的錯誤:/
映射批注中的repositoryClass
的值必須是repositoryClass
的名稱空間+類名,看起來您可能還添加了一些目錄結構。 -
實際上在PHP名稱空間中不是有效字符,因此您現在獲得的值肯定是不正確的。
嘗試
@ORM\Entity(repositoryClass="gkeepBundle\Repository\ArticleRepository")
供參考:當該類名無效時,Doctrine會退回到默認存儲庫-這就是拋出您所看到的錯誤的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.