【问题标题】:Codeigniter: Message: Call to a member function line() on nullCodeigniter:消息:在 null 上调用成员函数 line()
【发布时间】:2019-02-08 19:22:15
【问题描述】:

代码点火器:

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

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

我收到了这个错误:

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

所以 $this 没有 lang...

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

怎么知道那是 $this 呢?我的意思是整个事情(Codeigniter)

谢谢

更新 1:

就在这里,在这些文件中使用 $this-> 将不起作用,例如 $this->load 或 $this->lang。

这里的 $this 是什么以及如何获取可以在那里加载文件的 $this?

更新 2:

$this 适用于类上下文。

也就是说views文件夹中的一个php文件属于一个类(是不是来自controler类上下文?),但是language下的php文件不是,嗯...

更新 3:

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

对自己负责的事情负责:)

...但是,在语言文件夹下,我们有一个不同的东西:

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

我明白了:

Message: Undefined property: CI_Lang::$load

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

更新 4:

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

【问题讨论】:

  • 好吧,您可能必须加载lang 的东西。因为它没有加载它是空的。 $this-&gt;load-&gt;library('lang'); 之类的东西我忘了已经过了一分钟。也可以是language。如果您在可以加载它的任何地方都需要它,我想说钩子可能......我知道有一个地方可以全局加载它..大声笑查找文档。
  • $this 适用于类上下文。你是在课外叫它吗?另外请分享更多关于 $this->lang 初始化位置的代码? about-me_lang.php 里面的代码是什么?

标签: php codeigniter


【解决方案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.

【讨论】:

    【解决方案2】:

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

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

    因为那里的类上下文是CI_Lang

    感谢 Rinsad 提供类上下文。

    【讨论】:

      猜你喜欢
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 2017-06-18
      • 2017-08-09
      • 1970-01-01
      • 2020-03-10
      • 2017-09-24
      相关资源
      最近更新 更多