我使用PyroCMS和CI已经有一段时间了,我真的很喜欢它。
我正在扩展一个数据库模块,将允许管理员用户管理一个数据库,而不必使用像phpMyAdmin这样的东西。
然而,我唯一能做的就是浏览表的字段值(即'SELECT * FROM 'table_name')。
我想要包含更多的函数,但是我似乎无法让dbforge正常工作。我知道它是加载的,因为dbforge用于卸载模块。从它调用函数时,我也没有得到任何错误。
下面是我在控制器中编写的代码示例(dbforge已经加载)。
public function drop($table_name)
{
$table_name = $this->uri->segment(4);
$this->dbforge->drop_table($table_name);
redirect('admin/database/tables');
}假设函数是从这个url调用的:
.../admin/database/drop/table_name它似乎起作用了..。但是相反,它只是重定向到表概述。
我是不是漏掉了什么?如果$table_name是有效的,那么$this->dbforge-> drop _ table ($table_name)不应该总是删除一个表吗?
编辑
作为一种变通办法,我能够使用:
public function drop($table_name)
{
$table_name = $this->uri->segment(4);
//$this->dbforge->drop_table($table_name);
$this->db->query("DROP TABLE ".$table_name);
redirect('admin/database/tables');
return TRUE;
}我真的很想使用DB forge,但是...
发布于 2011-10-19 07:41:30
我认为您可能对PyroCMS 1.3.x中的站点前缀感到有点困惑。
默认情况下,社区和专业版的所有安装都会将default_作为第一个站点中所有表的前缀。如果您有专业版,您可以添加新站点,站点引用将是whatever_而不是default_
这个前缀由dbforge负责,所以当您想要删除default_blog时,只需删除:
/admin/database/drop/blog
另外,为什么接受$table_name作为参数,然后用uri段覆盖它?
另外,为什么接受$table_name作为参数,然后用uri段覆盖它?
看到我在那里做了什么了吗?xD
public function drop($table_name)
{
$this->dbforge->drop_table($table_name);
redirect('admin/database/tables');
}https://stackoverflow.com/questions/7813073
复制相似问题