Codeigniter:消息:在null上调用成员函数line()

时间:2018-09-03 18:32:25

标签: php codeigniter

Codeigniter:

我正在使用language / english / pages / about-me_lang.php:

<?php echo $this->lang->line('url_Contact')?>

我得到这个错误:

Message: Call to a member function line() on null

所以$ this没有lang ...

我应该使用什么来获取lang行变量?

又如何知道这是$ this?我的意思是整个(Codeigniter)

谢谢

更新1:

enter image description here

在这里,在这些文件中,带有$ this->的所有内容均无效,例如$ this-> load或$ this-> lang。

这里的$ this是什么,以及如何获得可以在其中加载文件的$ this?

更新2:

  

$ this适用于类上下文。

因此,这意味着views文件夹中的php文件属于一个类(是否来自控件类上下文?),但是语言下的php文件不是,嗯...

更新3:

因此,在我们看来,我们拥有CI_Loader并基于此:https://www.codeigniter.com/user_guide/libraries/loader.html

对其负责:)

...但是,在language文件夹下,我们有另一件事:

because when I try: $this->load->model('functions');

我得到:

Message: Undefined property: CI_Lang::$load

现在,如何使用CI_Lang类获取该变量?

更新4:

找到了解决方案,将其作为单独的答案发布在下面!

2 个答案:

答案 0 :(得分:1)

在不确定该行是否存在时,在第二个参数中使用false

$this->lang->line('url_Contact', FALSE);

如果不确定行是否存在,可以选择将FALSE作为该方法的第二个参数传递,以防错误记录

Make sure the language class is loaded.

Check my answer on another question which explained well

答案 1 :(得分:0)

要从语言文件中获取一行文本,但在语言文件夹下的INSIDE文件中,这是解决方案:

<?php echo $this->line('url_Contact')?>

因为那里的类上下文是CI_Lang

感谢Rinsad支持类上下文。