首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:方法Doctrine\ORM\Query\Expr\From::__toString()不能在symfony 2应用程序中抛出异常

错误:方法Doctrine\ORM\Query\Expr\From::__toString()不能在symfony 2应用程序中抛出异常
EN

Stack Overflow用户
提问于 2016-02-12 01:46:16
回答 1查看 1.6K关注 0票数 1

请根据产品实体所属的部门获取产品实体,但该部门实体与产品实体没有直接关系。在这种方式下,产品是部门的伟大伟人->类别->集团->产品。

DepartmentRepository

代码语言:javascript
复制
public function findDepartmentProduct($id)
{
    return $this
        ->createQueryBuilder(['p', 'c', 'gc', 'ggc'])
        ->select(['p', 'c', 'gc', 'ggc'])
        ->from('Parent', 'p')
        ->leftJoin('p.children', 'c')
        ->leftJoin('c.grandchildren', 'gc')
        ->leftJoin('gc.greatgrandchildren', 'ggc')
        ->where('p.id = :id')
        ->andWhere('ggc.expire = :no')
        ->setParameter('no',0)
        ->setParameter('id', $id)
        ->getQuery();
   }

主计长:

代码语言:javascript
复制
  /**
 * @Route("/department/{id}", name = "department")
 */
public function departmentAction(Request $request,$id)
{
    $Department = $this->getDoctrine()->getRepository('AppBundle:Department');
    $department = $Department->find($id);

    $Product = $this->getDoctrine()->getRepository('AppBundle:Product');
    $customersChoiceProducts = $Product->mostView('20');


    $query = $Department->findDepartmentProduct($id);

    $paginator  = $this->get('knp_paginator');
    $pagination = $paginator->paginate(
        $query, /* query NOT result */
        $request->query->getInt('page', 1)/*page number*/,
        8/*limit per page*/
    );

    return $this->render('default/department.html.twig', array(
        'pagination' => $pagination,
        'department'=>$department,
        'customersChoiceProducts'=>$customersChoiceProducts,
    ));
}

意见:

代码语言:javascript
复制
<div class="link">
                <ul>
                    {% for product in pagination %}
                                <li >
                                  <a href="/brows/{{ product.id }}">
                                       <span>  <img src="{{ vich_uploader_asset(product, 'frontImageFile') }}" alt="" style="height:290px"></span>
                                       <h2 class="title">
                                           <span class="brand">{{ product.brand.name |title}}</span>
                                           <span class="name">{{ product.name|title }}</span>
                                       </h2>
                                        <span class="price-box">
                                            <span>
                                                <span data-currency-iso="NGN">₦</span>
                                                <span data-price="{{ product.price }}">{{ product.price }}</span>
                                            </span>
                                        </span>
                                  </a>
                                </li>
                    {% endfor %}
                </ul>
        </div>

然后运行我得到的错误代码

错误:方法Doctrine\ORM\Query\Expr\From::__toString()不能抛出异常500内部服务器错误- FatalErrorException

EN

回答 1

Stack Overflow用户

发布于 2016-02-12 03:11:19

这是:

代码语言:javascript
复制
->from('Parent', 'p')

应当是:

代码语言:javascript
复制
->from('YourNamespaceYourBundle:Parent', 'p')

或者:

代码语言:javascript
复制
->from('YourNamespace\YourBundle\Parent', 'p')

当然,您的应用程序中有正确的名称空间或包名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35353459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档