小编cos*_*sta的帖子

更改主键值的getResult数组键

是否可以在Doctrine2中更改getResult()的数组键值?

例:

$qb->select('t.id, t.name')->from('Table', 't');

当我打印这个时,我得到了,这不是我想要的:

print_r($qb->getQuery()->getResult());

//Print result: Array ( [0] => Array ( [id] => 20 [name] => Name1 ) [1] => Array ( [id] => 21 [percentagem] => Name2 ) )

我想要的是:

Array ( [20] => Array ( [id] => 20 [name] => Name1 ) [21] => Array ( [id] => 21 [percentagem] => Name2 ) )

建议,提示将不胜感激.

php doctrine-orm

19
推荐指数
2
解决办法
1万
查看次数

Zend翻译了路线

我有不同的语言环境的多个路由:

例:

路线为/ de

$routes['industry'] = array(
    'route' => 'branche/:type',
    'defaults' => array(
        'module' => 'default',
        'controller' => 'index',
        'action' => 'branche',
        'type' => 'automobil'
    ),
    'reqs' => array(
        'type' => '(automobil|textil)'
    )
);
Run Code Online (Sandbox Code Playgroud)

路线为/ en

$routes['industry'] = array(
    'route' => 'industry/:type',
    'defaults' => array(
        'module' => 'default',
        'controller' => 'index',
        'action' => 'branche',
        'type' => 'car'
    ),
    'reqs' => array(
        'type' => '(car|textile)'
    )
);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它可能以某种方式只有一条路线而不是2条路线?

注意不仅是更改的路由,还有reqs上的类型和默认类型.

php zend-framework

7
推荐指数
1
解决办法
85
查看次数

WHERT子句中的Doctrine Filter而不是LEFT JOIN

我有一个多租户应用程序,我正在使用Doctrine Filters来过滤我的SQL客户端.

所以,当我想要一个我的客户端项目列表时,我只需要做一个"getAll",过滤器会自动在WHERE子句上附加SQL,如下所示:

SELECT * 
FROM projects p
WHERE p.client_id = 1 #(appended by the filter)
Run Code Online (Sandbox Code Playgroud)

我的问题是当我想要例如ProjectMembers时.过滤器将SQL添加到LEFT JOIN,而不是WHERE子句,使得过滤器无用,因为它将返回所有ProjectMembers,即使它们不是来自客户端1.

SELECT * 
FROM projects p
LEFT JOIN project_members pm ON pm.project_id = p.id 
AND p.client_id = 1 #(appended by the filter)
Run Code Online (Sandbox Code Playgroud)

这是我的addFilterConstrait

public function addFilterConstraint(ClassMetaData $targetEntity, $targetTableAlias)
{
    $class = $targetEntity->getName();

    if (array_key_exists($class, $this->disabled) && $this->disabled[$class] === true) {
        return '';
    } elseif (array_key_exists($targetEntity->rootEntityName, $this->disabled) && $this->disabled[$targetEntity->rootEntityName] === true) {
            return '';
    }

    $config …
Run Code Online (Sandbox Code Playgroud)

php sql symfony doctrine-orm

6
推荐指数
1
解决办法
1035
查看次数

如果在连接表中不存在,则显示0的SQL命令

我在SQL命令中遇到问题.

我有一个问题表,其他问题的答案,以及其他用户的回复.

想象一下以下示例:

问题1:谁将赢得半决赛?
Aswners:A)葡萄牙B)西班牙
回复:10人投票B)西班牙,0人投票A)葡萄牙

SELECT a.answer, COUNT(r.id) as total
FROM replies r
LEFT JOIN answers a ON a.id = r.id_answer
LEFT JOIN questions q ON q.id = a.id_question
WHERE q.id = 1
GROUP BY r.id_answer
Run Code Online (Sandbox Code Playgroud)

我的观点是从
SELECT结果中得出:
西班牙10
葡萄牙0

但我不能,我不知道该怎么做,因为我的方式,我总是得到回复表上的回复结果.像这样:
西班牙10

mysql sql

2
推荐指数
1
解决办法
1544
查看次数

标签 统计

php ×3

doctrine-orm ×2

sql ×2

mysql ×1

symfony ×1

zend-framework ×1