我使用Symfony 2和ORM Doctrine.我想创建并注册自定义DQL函数.实际上,我想在我的请求中使用SQL函数" CAST ",如下所示:
$qb = $this->_em->createQueryBuilder();
$qb->select('d')
->from('\Test\MyBundle\Entity\MyEntity', 'd')
->orderBy('CAST(d.myField AS UNSIGNED)', 'ASC')
return $qb->getQuery()->getResult();
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个扩展"FunctionNode"的"CastFunction":
namespace Test\MyBundle\DQL;
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
use Doctrine\ORM\Query\SqlWalker;
use Doctrine\ORM\Query\Parser;
class CastFunction extends FunctionNode
{
public $firstDateExpression = null;
public $secondDateExpression = null;
public function parse(\Doctrine\ORM\Query\Parser $parser)
{
$parser->match(Lexer::T_IDENTIFIER);
$parser->match(Lexer::T_OPEN_PARENTHESIS);
$this->firstDateExpression = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_IDENTIFIER);
$this->secondDateExpression = $parser->ArithmeticPrimary();
$parser->match(Lexer::T_CLOSE_PARENTHESIS);
}
public function getSql(\Doctrine\ORM\Query\SqlWalker $sqlWalker)
{
return sprintf('CAST(%s AS %s)', $this->firstDateExpression->dispatch($sqlWalker), $this->secondDateExpression->dispatch($sqlWalker));
}
}
Run Code Online (Sandbox Code Playgroud)
当然,我在config.yml中注册了这个类:
doctrine:
orm:
dql:
string_functions:
CAST: Test\MyBundle\DQL\CastFunction
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试我的请求时,我收到以下错误:
"[语义错误]第0行,第83行附近'UNSIGNED)':错误:未定义'UNSIGNED'."
我搜索但我不知道问题在哪里! …
最近我尝试在我的Web应用程序中集成TinyMce 4.0.我想点击textarea时点击事件,但它不起作用.我查看了官方文档,我尝试了以下代码:
tinyMCE.init({
...
setup : function(ed) {
ed.onClick.add(function(ed, e) {
console.debug('Editor was clicked: ' + e.target.nodeName);
});
}
Run Code Online (Sandbox Code Playgroud)
出现错误:"TypeError:ed.onClick未定义".
所以,我试图直接在iframe上放一个onclick事件,但这是一个失败:
$("iframe").contents().bind('click', function(){
...
});
Run Code Online (Sandbox Code Playgroud)
你有什么想法怎么做?
doctrine ×1
doctrine-orm ×1
javascript ×1
jquery ×1
mysql ×1
php ×1
symfony ×1
tinymce ×1
wysiwyg ×1