我的代码发生了一件非常特殊的事情。
这是我的存储库功能:
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
}
我无法弄清楚......
非常感谢,
加布里埃尔
答案 0 :(得分:0)
经过进一步研究,我发现了问题。
我将此存储库函数调用两次。第一个用法语,然后,第二个保留默认的Locale' fr'和' en'并没有改变任何事情......
所以,这是另一个问题:你知道为什么,当我设置我的存储库的defaultLocale一次时,我又不能再改变它了吗?
由于