如何在 Codeigniter 4 的视图中访问数据库连接

how to access database connection in views in codeigniter 4

我想在 Views/login 中执行一些查询。php 我在 Controller 中创建了数据库连接,但我需要在 Views 中执行某种查询。 在视图中无法通过 $this->db->query("") 访问它,有什么好的解决方案?

请注意,正如 DFriend 在此问题的评论中提到的那样,这在 MVC 模式中是一种不好的做法。查询应始终 运行 在将数据传递到在视图中显示这些数据的控制器的模型中。

但是,如果您真的想对一个视图执行查询,则必须在 运行ning 查询之前启动数据库对象。 $this->db 在您的案例中不存在,因为您的视图没有扩展具有参数 $db

的 class
<?php
    $db = db_connect();
    $query = $db->query('YOUR QUERY');
    //you get result as an array in here but fetch your result however you feel to
    $result = $query->getResultArray();
?>

在这里你创建一个数据库连接,然后你运行你的查询与你创建的数据库对象。

您可以在视图或任何其他函数中使用查询生成器,方法是先创建数据库连接实例,方法是首先加载 class $this->load->database() ,这将提供您可以使用数据库对象作为 $this->db->query("YOUR RAW QUERY") 来构建您的查询。因此你可能会做类似

的事情
    <?php $this->load->database();
          $q = $this->db->query("SELECT * FROM users");
          $r = $q->result(); // returns an object by default        
    ?>

注意:在您的模型之外执行不是好的做法,所以只有在您必须时才执行。