Sub*_*urf 6 mysql string concat doctrine-orm
我有字段firstname和lastname我的MySQL表.为方便起见,我想在我的Doctrine 2实体中添加一个计算列full_name.在普通的MySQL中我会做这样的事情
SELECT CONCAT(firstname, " ", lastname) AS full_name FROM customers;
Run Code Online (Sandbox Code Playgroud)
但是,连接字段和常量字符串(在这种情况下为"")似乎不适用于Doctrine的CONCAT实现.使用以下代码时
$repository
->createQueryBuilder('customer')
->select('CONCAT(customer.firstname, " ", customer.lastname) AS full_name')
// ...
Run Code Online (Sandbox Code Playgroud)
我收到了错误
[Syntax Error] line 0, col 91: Error: Expected StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression, got '"'
Run Code Online (Sandbox Code Playgroud)
我怎样才能实现与MySQL相同的行为?
Sub*_*urf 27
显然,DQL中的字符串只能用单引号封装,而不能用双引号封装.文档中的简短搜索并未直接提及此行为,但我注意到所有包含常量字符串的示例都使用单引号.
更改
->select('CONCAT(customer.firstname, " ", customer.lastname) AS full_name')
Run Code Online (Sandbox Code Playgroud)
至
->select('CONCAT(customer.firstname, \' \', customer.lastname) AS full_name')
Run Code Online (Sandbox Code Playgroud)
要么
->select("CONCAT(customer.firstname, ' ', customer.lastname) AS full_name")
Run Code Online (Sandbox Code Playgroud)
解决了这个问题
| 归档时间: |
|
| 查看次数: |
14937 次 |
| 最近记录: |