我想用至少2个左连接对复杂请求进行分页,但我正在使用的分页包(KnpPaginationBundle)无法告诉Doctrine如何计算结果(这是分页过程所需的),并继续这样做例外.
Cannot count query which selects two FROM components, cannot make distinction
这是使用Doctrine QueryBuilder构建的示例请求.
public function findGroupsByUser(User $user, $listFilter, $getQuery = false, $order = 'ASC')
{
$query = $this->createQueryBuilder('r')
->select('r as main,g')
->select('r as main,g, count(gg) as members')
->leftjoin('r.group', 'g')
->innerjoin('MyBundle:GroupMemberRel', 'gg', 'WITH', 'r.group = gg.group')
->addGroupBy('g.groupId')
->add('orderBy', 'g.name ' . $order);
if ($getQuery == true) {
return $query;
}
return $query->getQuery()->getResult();
}
Run Code Online (Sandbox Code Playgroud)
然后我将此请求提供给knp_paginator服务,然后我就得到了异常
$groupQuery = $this->em->getRepository('MyBundle:GroupMemberRel')->findGroupsByUser($user, $listFilter, true);
$paginator = $this->container->get('knp_paginator');
/* @var $groups Knp\Component\Pager\Pagination\PaginationInterface */
$groups …Run Code Online (Sandbox Code Playgroud) 这是当你检查Zend框架主页时出现的那种问题:自11月中旬以来首次发布测试版.
作为一个热心的Zend框架用户,我想知道什么时候应该开始升级,他们还警告我们下一个ZF版本1.12将帮助我们升级过程,但是因为我想开始一个大项目,不确定什么是最安全的道路,有什么想法吗?
我想知道在symfony2中包含第三方php文件的最佳方法是什么.我使用不同的php - ajax包在我的symfony2应用程序中上传文件.该软件包为我提供了一些我需要在我的symfony控制器中使用的php oops代码.我在我的控制器中创建该代码的对象.所以我想知道我可以在哪里放置第三方代码或文件,以及如何在我的symfony2控制器中包含或创建该代码的对象.我们是否也在symfony2中使用require或include.如果那是唯一的方法.
有一些问题在symfony 2.1网站上更改区域设置.
我找不到一种能够在不使用_locale每条路线的情况下更改lang的方法.我知道这是违反基本规则的,但是这个内容例如不会被引擎索引,因为它只是成员.
通常,我想要一个简单的方法来更改请求(BC版本2.1)或会话上的区域设置,但无法弄清楚如何顺利地执行此操作.我也想避免使用Listener.
config.yml文件:
framework:
translator: { fallback: %locale% }
session:
Run Code Online (Sandbox Code Playgroud)
routing.yml文件:
route_change_lang:
pattern: /changelang/{newlang}
defaults: { _controller: AcmeCoreBundle:Default:switchLanguage, newlang: en }
requirements:
newlang: en|fr|de
Run Code Online (Sandbox Code Playgroud)
更新路由器区域设置的简单操作:
public function switchLanguageAction($newlang)
{
$request = $this->getRequest();
$request->setLocale($newlang);
$referer_url = $this->get('request')->headers->get('referer');
if ($referer_url != null) {
return $this->redirect($referer_url);
} else {
return $this->redirect($this->generateUrl('route_home'));
}
}
Run Code Online (Sandbox Code Playgroud)
问题是什么?我想它与主config.yml文件中设置的default_locale有关,但是文档不是很清楚,任何帮助/提示都表示赞赏
我正在使用可翻译的学说,并且我有一个具有可翻译属性的实体。看起来像这样。
class Scaleitem
{
/**
* Must be defined for translating this entity
*/
use ORMBehaviors\Translatable\Translatable;
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
Run Code Online (Sandbox Code Playgroud)
而且我有一个文件ScaleitemTranslation:
class ScaleitemTranslation
{
use ORMBehaviors\Translatable\Translation;
/**
* @ORM\Column(type="string", length=255)
*/
protected $text;
/**
* Set text
*
* @param string $text
* @return ScaleitemTranslation
*/
public function setText($text)
{
$this->text = $text;
return $this;
}
/**
* Get text
*
* @return string
*/
public function getText()
{
return $this->text;
}
} …Run Code Online (Sandbox Code Playgroud)