如何在codeigniter中调用自定义助手的自定义同级方法并使用数据库

问题描述 投票:0回答:2

编辑

<?php   defined('BASEPATH') OR exit('No direct script access allowed');




 function getCrud($table_name, $subject)
{

    $CI =& get_instance();
    $CI->load->database();

    $crud = new grocery_Crud();
    $crud->set_table($table_name);
    $crud->set_subject($subject);
    $crud->unset_read();
    $crud->unset_clone();
    $crud->where(array($table_name.'.flag' => '1'));

    $crud->callback_delete(function ($primary_key) use ($table_name) {
        return $CI->db->update($table_name, array('flag'=>'0'), array('id'=>$primary_key));
    });

    return $crud;
}

 function oneToMany($table_name, $subject, $rel_table,$field='name')
{

    $crud = getGrocreyCrud($table_name, $subject);
    $crud->set_relation($rel_table.'_id', $rel_table, 'name', array('flag' => '1'));
    $output = $crud->render();
    return $output;
}

我无法使用ci get实例调用上述函数getCrud。还有其他方法吗??

返回$ CI-> db-> update($ table_name,array('flag'=>'0'),array('id'=> $ primary_key));当在控制器(($ CI将是$ this在控制器中)中使用这些代码行时,我可以将标志设置为0,但在助手中这里不会发生

php codeigniter codeigniter-3 crud grocery-crud
2个回答
0
投票

也许以下应该可行

<?php 
defined('BASEPATH') OR exit('No direct script access allowed');


if(!function_exists('getCrud'))
{
    function getCrud($table_name, $subject)
    {
        // some code
    }
}

if(!function_exists('oneToMany'))
{
    function oneToMany()
    {
        $CI =&get_instance();

        $crud = getCrud($table_name, $subject);
        return $crud ;
    }
}

-1
投票
<?php 
    defined('BASEPATH') OR exit('No direct script access allowed');


    function getCrud($table_name, $subject)
    {
          // some code
    }

     function oneToMany()
    {
        $CI =&get_instance();

        $crud = $CI->getCrud($table_name, $subject);
        return $crud ;
    }

尝试一下

© www.soinside.com 2019 - 2024. All rights reserved.