我在存储库中有这段代码:
public function getNotAssignedBy($speciality, $diploma)
{
$qb = $this->createQueryBuilder('j')
->select('DISTINCT(j.id) id', 'j.firstName', 'j.lastName', 'j.dateBirth', 'j.sex')
->leftJoin('j.qualifications', 'q')
;
if ($speciality) {
$qb->andWhere('q.speciality = :speciality_id')->setParameter('speciality_id', $speciality);
}
if ($diploma) {
$qb->andWhere('q.diploma = :diploma_id')->setParameter('diploma_id', $diploma);
}
$result = $qb->getQuery()->getResult();
return $result;
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得另一个实体中不存在id的行?
任何帮助.谢谢
我试着按年龄段计算人数.
AGEBRACKET | NBR
10 | 3
20 | 14
30 | 123
40 | 4
50 | 55
...
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
$qb = $em->createQueryBuilder();
$qb->select('FLOOR((YEAR(CURDATE())-YEAR(p.date_birth)) / 10) * 10 AS age, COUNT(p.id)');
$qb->from('MyBundle:Person', 'p');
$qb->groupBy('age');
$countByAge = $qb->getQuery()->execute();
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[语法错误]第0行,第7列:错误:预期的已知函数,得到'FLOOR'
我看一点解决方案,这就是我发现的:
<?php
namespace MyProject\Query\AST;
use \Doctrine\ORM\Query\AST\Functions\FunctionNode;
use \Doctrine\ORM\Query\Lexer;
class MysqlFloor extends FunctionNode
{
public $simpleArithmeticExpression;
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
{
return 'FLOOR(' . $sqlWalker->walkSimpleArithmeticExpression(
$this->simpleArithmeticExpression
) . ')';
}
public function parse(\Doctrine\ORM\Query\Parser $parser)
{
$lexer = $parser->getLexer();
$parser->match(Lexer::T_IDENTIFIER);
$parser->match(Lexer::T_OPEN_PARENTHESIS);
$this->simpleArithmeticExpression …Run Code Online (Sandbox Code Playgroud) 我在 Symfony 中使用 DomCrawler。
$variable = 'value';
$crawler->filter('table > tr')->each(
function ($node, $i) {
// $variable;
}
);
Run Code Online (Sandbox Code Playgroud)
我尝试访问函数内部的变量,但出现错误:未定义变量。
如何在函数内部调用这个变量?