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

时间:2016-06-09 18:34:44

标签: php codeigniter dry

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

假设一个数据库有很多表,例如学校学生,...等等,应用程序中需要执行常见任务,例如为表中的每个条目生成随机唯一ID,检索整个需要来自表格的匹配行的行,...等。

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

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)。但是在模型之外的函数中使用数据库查询是一种很好的做法。

1 个答案:

答案 0 :(得分:2)

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

class MY_Model extends CI_Model { 

您可以在核心模型中编写function generate_ID( $table_name ){

最后使用MY_Model扩展您的模型

class Student_model extends MY_Model