【问题标题】:Model not loading in my controller in CodeIgniter模型未在 CodeIgniter 中加载到我的控制器中
【发布时间】:2013-11-25 19:52:19
【问题描述】:

我一直在尝试将模型加载到我的控制器中,但即使我配置了所有设置也没有。即使使用数据库,我也没有收到任何错误或任何错误。

我的模型

class dogin extends CI_Model {
    function __construct() {
        // Call the Model constructor
        parent::__construct();
    }
    function hello() {
        $rae = "hello";
        return $rae;
    }
}

我的控制器

class login extends CI_Controller{
    function __construct() {
        parent::__construct();
    }
    function lo() {
        $this->load->model('dogin');
        $var = array();
        $var['hello'] = $this->dogin->hello();
        $this->load->view('gifttoday/login',$var);
    }
}

我只使用了一个简单的东西,仍然没有结果或错误,什么都没有。

【问题讨论】:

  • 你可能想把模型类名大写。另外,您确定您的模型在application/models 目录中吗?还有一件事,您能否在将$this->dogin->hello(); 传递给视图之前打印它以查看错误是在模型中还是在视图中?。
  • 将模型名称和控制器名称大写。不要将 php 文件名大写。如果这不起作用,请尝试从您的控制器和模型中回显测试字符串。并使用 $data['hello'] 传递给您的视图 - 这是大多数人使用的约定。
  • 代码对我来说似乎没问题。将error_reporting(E_ALL); 放在控制器和类定义之上。我怀疑它是某个地方的 PHP 错误,而您没有看到它,因为必须关闭错误报告
  • 是的,代码似乎可以启用错误报告。也试试 var_dump($var);在加载视图之前。如果你得到输出然后检查你的视图,你可能有一些错误。

标签: php mysql codeigniter mysqli


【解决方案1】:

您必须将模型类名称大写并从您的控制器中调用它。这是适合您的工作版本。

控制器/login.php

<?

class login extends CI_Controller{
function __construct() {
    parent::__construct();
}
function lo() {

    $this->load->model('Dogin');
    $var = array();
    $var['hello'] = $this->Dogin->hello();
    //$this->load->view('gifttoday/login',$var);
    var_dump($var); //prints hello!
    }
}

models/dogin.php

<?

class Dogin extends CI_Model {
    function __construct() {
        // Call the Model constructor
        parent::__construct();
    }



    function hello() {
        $rae = "hello";
        return $rae;
    }
}

【讨论】:

  • 尝试 var_dump ($var); 而不是将其传递给视图以查看是否从模型接收到值。
  • 仍然没有任何 var 转储为空
【解决方案2】:

在你的模型中试试这个:

class Dogin extends CI_Model {

    public function __construct()
    {
        parent::__construct();
        //Do your magic here
    }

    function hello() {
        $rae = "hello";
        return $rae;
    }
}

并且在您的控制器中(如果它们是公共的,则将公共添加到控制器中的方法):

class Login extends CI_Controller {

    public function lo() {

        $this->load->model( 'Dogin' );
        $var = array();
        $var['hello'] = $this->Dogin->hello();
        $this->load->view( 'gifttoday/login', $var );
    }

}

别忘了把它粘贴到你的视图中:

<?php echo $hello; ?>

【讨论】:

    【解决方案3】:

    大家好,我已经解决了这个问题,这只是一个额外的“}”,我检查了我的错误日志并将其删除,这只是一个语法错误,但无论如何感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多