繁体   English   中英

Symfony2存储库中PHP的奇怪行为

[英]Strange behavior of PHP in a Symfony2 repository

我的代码发生了一些特别的事情。

这是我的存储库功能:

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
}

我不知道...

非常感谢,

加布里埃尔

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

我两次调用此存储库函数。 第一个保留法语,然后第二个保留defaultLocale'fr','en'保持不变...

所以,这是另一个问题:您知道为什么,当我一次设置存储库的defaultLocale时,无法再次更改它吗?

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM