PHP在Symfony2存储库中的奇怪行为

时间:2015-09-22 07:57:10

标签: php symfony repository entity

我的代码发生了一件非常特殊的事情。

这是我的存储库功能:

public function getPlace($id, $lang = 'fr') {

        $this->setDefaultLocale($lang);

        // ... etc, etc
}

我这样称呼这个函数:

$place = $myRepo->getPlace($id, 'en');

在我的存储库中,本地仍然是'fr'......

当我打印$ lang变量时,显示'en'。

如果您使用此代码,则在静态中,它可以完美地运行:

public function getPlace($id, $lang = 'fr') {

        $this->setDefaultLocale('en');

        // ... etc, etc
}

我无法理解为什么......我尝试过基本的东西:

public function getPlace($id, $lang = 'fr') { //(NOT WORKING)

        $t = ($lang == 'fr') ? 'fr' : 'en';
        $this->setDefaultLocale($t);

        // ... etc, etc
}



public function getPlace($id, $lang = 'fr') { // (WORKING)

        $t = 'en';
        $this->setDefaultLocale($t);

        // ... etc, etc
}

我无法弄清楚......

非常感谢,

加布里埃尔

1 个答案:

答案 0 :(得分:0)

经过进一步研究,我发现了问题。

我将此存储库函数调用两次。第一个用法语,然后,第二个保留默认的Locale' fr'和' en'并没有改变任何事情......

所以,这是另一个问题:你知道为什么,当我设置我的存储库的defaultLocale一次时,我又不能再改变它了吗?

由于