Php 表名作为模型Codeigniter中的变量
是否可以将一些变量传递给表名中的模型? 我有一个创建客户的模块。 现在,我们为每个客户创建一个单独的表。 客户具有登录和注销凭据 现在,无论何时创建一个客户,我都不能总是创建一个新模型并在那里传递它的名称 所以我希望它是动态的,我不知道我如何才能做到 每个客户将有一个单独的表 现在我想为登录创建一个模型,但是我应该在表名中传递什么,它应该是动态的,对吗 mysql模式应该是什么来实现这一点? 这是我的示例模型代码:Php 表名作为模型Codeigniter中的变量,php,mysql,codeigniter,Php,Mysql,Codeigniter,是否可以将一些变量传递给表名中的模型? 我有一个创建客户的模块。 现在,我们为每个客户创建一个单独的表。 客户具有登录和注销凭据 现在,无论何时创建一个客户,我都不能总是创建一个新模型并在那里传递它的名称 所以我希望它是动态的,我不知道我如何才能做到 每个客户将有一个单独的表 现在我想为登录创建一个模型,但是我应该在表名中传递什么,它应该是动态的,对吗 mysql模式应该是什么来实现这一点? 这是我的示例模型代码: class Customer_User_M extends MY_Mod
class Customer_User_M extends MY_Model
{
protected $_table_name = 'customer1';
protected $_order_by = 'name';
public function __construct()
{
parent::__construct()
}
}
客户表:
CREATE TABLE IF NOT EXISTS `customer1` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`site_key` varchar(50) NOT NULL,
`display_name` varchar(100) NOT NULL,
`ext` varchar(15) NOT NULL,
`auth_user` varchar(100) NOT NULL,
`password` varchar(128) NOT NULL,
`base_ini_id` varchar(50) NOT NULL,
`comments` varchar(200) NOT NULL,
`custom_ini_filename` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
最好将常见的客户详细信息保存在customer表中,然后创建另一个表来存储具有外键customerid的不同字段的客户的不同数据
这里,,如果要将动态表名传递给模型,则需要使用键值对将所有表名预定义为关联数组。然后可以将所需键值传递给模型。可以使用库来实现。这样,您就可以使用所有的表名控制器您只需在模型中创建一个函数,并将创建表的代码放入函数中,然后从控制器中传递动态表名,如下所示 型号功能代码:
function access_customer_table($table_name)
{
//put ur select query here with table name in FROM clause will be $table_name
}
并在加载模型后在控制器中调用此模型函数。。。并将您的表名作为参数。。。
比如:
如果需要,请更正语法。。如果逻辑有任何错误,请告诉我…加载模型后,我试图设置表名。只是为我工作
$this->load->model('customer_model','customer');
那么
动态表的属性应该是什么?@SubrataDeyPappu我已经添加了我的客户表的架构,您确定要这样做吗?您不想为所有具有外键customer_id的客户创建一个通用表吗?根据我们的要求,我必须这样做,我希望我能在这个wyaso中找到解决方案,您希望如何命名新表?这将创建新表,对吗?但是,如果我们为客户提供了现有的表呢?$this->dbforge->create\u table($table\u name,TRUE);如果不存在$TABLE\u名称,则提供CREATE TABLE\u名称。。。因此,如果表已经存在,它将不会创建表…是的,确切地说,但是表是从其他模块创建的,我只需访问其数据库并根据Aruguments中的表名获取记录,所以只需传递表名并从已创建的表中获取记录。。。通过选择查询。。。只需要将表名作为参数从控制器传递给模型中的一个函数,以获取表的记录……我已经提供了我的模型代码,那么你建议我在这里怎么做
$this->load->model('customer_model','customer');
$customer->table_name = "customer_xxx";