在 codeigniter 的辅助函数中使用数据库查询是一种好习惯吗?

Is it a good practice to use database queries in helper functions in codeigniter?

我在 CodeIgniter 框架的辅助函数中使用了数据库查询。

假设,一个数据库有很多table,例如school, student, ... 等应用程序中需要执行一些常见任务,例如为每个条目生成随机唯一 ID a table,从 table 中检索匹配行的整行,...等是必需的。

现在,我们可以在数据库的各个模型中为每个任务编写函数,例如

School_model中:

class School_model extends CI_Model
{
    // some code ...    

    function generateID()
    {
        // code to generate unique id by checking the database
    }

    // some code ...
}

并在 Student_model 中:

class Student_model extends CI_Model
{
    // some code ...    

    function generateID()
    {
        // same code to generate unique id except the table name
    }

    // some code ...
}

我们可以将table_name作为参数传递给辅助函数:

function generate_ID( $table_name )
{
    // code to genetrate unique id by checking in $table_name
}

后者防止代码重复(DRY)。但是在模型外的函数中使用数据库查询是一个好习惯吗?

我认为,扩展 Codeigniter 核心是更好的方法。

class MY_Model extends CI_Model { 

你可以写function generate_ID( $table_name ){里面的核心模型

最终使用 MY_Model

扩展您的模型
class Student_model extends MY_Model