与加入有关的学说查询.获得结果



我无法从查询中获得结果。

这是控制器方法:

public function indexAction()
{
    $this->layout()->setVariable('page_title', 'Страницы');
    $pages = $this->getServicePage()->getPageList($type = 1);
    $viewModel = new ViewModel(['pages' => $pages]);
    return $viewModel;
}

我使用服务:

public function getPageList($type){
    $language = $this->entityManager
        ->getRepository('ApanelLanguageEntityLanguageCommon')
        ->findOneBy(['LanguageMain' => 1]);
    $pages = $this->entityManager
        ->getRepository('ApanelPageEntityPageCommon')
        ->getPagesList($type, $language->getLanguageId());
    return $pages;
}

这是记者代码:

public function getPagesList($type, $language)
{
    $qb = $this->_em->createQueryBuilder()
        ->select(['u','p'])
        ->from('ApanelPageEntityPageCommon', 'u')
        ->innerJoin('ApanelPageEntityPageData','p', 'WITH', 'u.PageId = p.PageCommonId')
        ->where('u.PageTypeId = :type')
        ->andWhere('p.PageLanguageId = :language')
        ->setParameter('type', $type)
        ->setParameter('language', $language);
    return $qb->getQuery()->getResult();
} 

如果我尝试在视图中获得结果

<?php  $i=0;
foreach ($this->pages as $page) {
    $i++;
    echo $id       = $page->getPageId();
    echo $cid       = $page->getPageCommonId();
} ?>

我有一个错误

致命错误:致电未定义的方法 ApanelPage Entity PageCommon :: getPageCommonId()in /HOME/XTADMIN/LOCALHOST/TEST.ZEND/www/module/apanelpage/apanelpage/apanel-page/page/page/index.phtml 在第19行

我尝试了不同的变体,但它试图在错误的实体中找到方法。

P.S。如果尝试此尝试:

echo "<pre>";
var_dump($pages);
echo "</pre>";

我的Firefox挂断了,我必须杀死该过程。

更新实体/pagedata.php

...
 /**
 * @var Pagecommon
 * @ORMManyToOne(targetEntity="ApanelPageEntityPageCommon")
 * @ORMJoinColumns({
 *   @ORMJoinColumn(name="PageCommonId", referencedColumnName="PageId")
 * })
 */
protected $PageCommonId;
...
public function getPageCommonId() { return $this->PageCommonId; }
public function setPageCommonId($PageCommonId) { $this->PageCommonId = (int)$PageCommonId;}
...

您写出getPageCommonId方法在您的PageData实体中,但错误是因为它试图在PageCommon实体中找到此方法:

致电未定义的方法ApanelPageEntityPageCommon::getPageCommonId()

我认为您的方法在错误的位置。

相关内容

  • 没有找到相关文章

最新更新