0
在Symfony1我這樣做是通過使用:如何在Symfony2中從庫中獲取控制器/ i18n對象?
sfContext::getInstance()->getController()->...
sfContext::getInstance()->getI18N()->...
如何Symfony2的得到這個?
UPDATE: 在Symfony2中這是不可能的!
在Symfony1我這樣做是通過使用:如何在Symfony2中從庫中獲取控制器/ i18n對象?
sfContext::getInstance()->getController()->...
sfContext::getInstance()->getI18N()->...
如何Symfony2的得到這個?
UPDATE: 在Symfony2中這是不可能的!
在你的控制器中,你可以做$this->get('translator')
。更多信息here。雖然沒有理解控制器部分。
編輯:
樣品服務實現會,
在你的類
namespace Your\Class\Namespace;
use Symfony\Component\Translation\TranslatorInterFace;
use Symfony\Component\HttpFoundation\Request;
class YourClass
{
private $translator;
private $request;
public function __construct(TranslatorInterFace $translator, Request $request)
{
$this->translator = $translator;
$this->request = $request;
}
public function aMethod(){
$translator->trans('key');
$session = $this->request->getSession();
}
//.....
}
添加按照services.yml
my_service:
scope: request
class: FQCN\Of\YourClass
arguments: [@translator, @request]
線,那麼你的控制器,你Ç一個訪問類使用,
$this->get('my_service');
$這隻適用於控制器/視圖。我需要從庫/其他類獲取控制器。這個怎麼做? – RKI 2012-04-12 13:09:05
您必須將該類定義爲服務容器並注入'@ translator'服務。見[這裏](http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services) – 2012-04-12 13:14:13
看到我編輯的評論。 – 2012-04-12 13:24:05