2

我的模型课:

<?php class Permissions extends CI_Model {

    private $userID   = '';
    private $permissions = '';

    function __construct($userID)
    {
        // Call the Model constructor
        parent::__construct();

        $this->userID = $userID;
        ....
    }
    function __construct()
    {.....}
?>

我想用一个参数加载这个模型,显然我做不到。如果没有参数,我可以通过这种方式加载无参数构造函数:

$this->load->model('Permissions');

我的第一个问题:加载带有参数的模型是无意义的吗?第二个:如果可行,我该怎么做?提前致谢。

4

3 回答 3

3

您可以实例化它自己的类,而不是加载它。

$permission = new Permission($param);

于 2014-12-18T06:30:55.893 回答
1

你可以看看这个论坛主题:http ://codeigniter.com/forums/viewthread/115681/

但是我不明白为什么要以权限检查的方式将用户标识作为参数提供?猜测你使用会话来保存用户数据,在会话中写入用户 ID 并在模型中使用 $this->session->userdata('user_id') 调用它。

快乐编码!

于 2012-04-14T11:03:36.680 回答
0

您可以在模型的功能级别进行自定义。如果您提供为什么要扩展模型,我可以说它是否有意义。如果要创建用户特定规则,最好在控制器上进行。

class Shop_m extends CI_Model {

 function getProductPriceInfo($cat,$id) {
        $this->db->where('shop_price.catid', $cat); 
                $this->db->where('shop_price.relid', $id); 
                $this->db->select('optional.title,optional.desc,shop_price.*');
                $this->db->join('optional', 'optional.id = shop_price.relid');
        $q = $this->db->get('shop_price');
        if($q->num_rows() > 0) {
            foreach ($q->result() as $row) {
                $data[] = $row;
            }
        return $data;
        }
    } 
于 2012-04-14T11:08:19.870 回答