【问题标题】:Use variable outside views phalcon使用可变外部视图 phalcon
【发布时间】:2016-04-26 06:43:50
【问题描述】:

我正在使用 Phalcon 和他的 Class Translate 功能来简化翻译。到目前为止,我正在将 t 变量从索引传递到所有视图,就在我设置 volt 时,就像这样:

 $view = new View();
 $view->setViewsDir(WEBSITE_PATH.'/views/');
// Return a translation object
      $view->t = new Phalcon\Translate\Adapter\NativeArray([
        "content" => $localization
      ]);

这行得通,但我也有要从文件夹视图之外翻译的页面,在 .php 中,而不是在 .volt 中。 如何将此变量“t”共享/设置/传递到其他地方?

【问题讨论】:

    标签: php phalcon volt


    【解决方案1】:

    您可以在依赖注入器中注册翻译,例如

    $di->setShared('translations', function() use($di) {
    
        // Include or set your translations here, must be an array
        $translations = ['Phalcon' => 'Falcon', 'Word' => 'Translation'];
    
        return new \Phalcon\Translate\Adapter\NativeArray(array(
            'content' => $translations
        ));
    
    });
    

    然后您可以在任何控制器中调用翻译,例如

    $this->translations->_('Phalcon')
    

    在视图中

    <?=$this->translations->_('Word') ?>
    

    延伸阅读:https://docs.phalconphp.com/en/latest/reference/translate.html

    【讨论】:

    • 谢谢!还有一个问题...... ->setShared 和 ->set 有什么区别?
    • 使用 ->setShared 总是返回相同的服务实例,而 ->set 每次调用时都会返回一个新实例。 docs.phalconphp.com/en/latest/reference/di.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多