Yii导入外部文件

时间:2013-11-28 10:11:48

标签: php yii

  • css
  • images
  • langs
    • en
      • site.php
  • protected
    • controller
    • model
    • view

这是我的文件夹结构。我想在控制器SiteController中导入此site.php文件。我试过Yii::import('langs.en.site', true);,在主配置中尝试了别名。但没有任何效果。还有别的吗?

site.php中的代码

define('EnterEmail', 'Email cannot be blank.');
define('EmailExists', 'The email you entered is already registered.');
define('EmailNotRegistered', 'This email ID is not registered with us.');
..............

3 个答案:

答案 0 :(得分:0)

为什么你不只是使用Yii :: t()和消息?它的方式更容易。 您需要定义别名langs:

Yii::setPathOfAlias('langs','/home/../../langs/');

然后在导入配置中,您可以使用它:

'import'=>array('langs.en.*')

请看Yii :: t(),方法更好。

答案 1 :(得分:0)

希望所有这些都是定义的,可以用参数

给出
  • 保护
    • 配置
      • params.php

params.php

return array(
    'EnterEmail' => 'Email cannot be blank.',
    'EmailExists' => 'The email you entered is already registered.',
    'EmailNotRegistered' => 'This email ID is not registered with us.',
   .....
);

将包含在来自配置的main.php中,如此

 'params' => require(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'params.php' ),

可以轻松访问

答案 2 :(得分:0)

您需要使用 webroot 开始您的路径:

Yii::import('webroot.langs.en.site');
$site = new Site;

有关更多路径,请参阅此页面: http://www.yiiframework.com/doc/guide/1.1/en/basics.namespace#root-alias

除此之外,使用翻译功能(link)的方式更好。关键是使用Yii :: t这样:

Yii::t('app', 'This is my text to be translated');

完成后,使用 Yiic 生成您可以调整的语言文件:

protected/yiic message protected/messages/config.php