【问题标题】:cakephp get schema for list of tablescakephp 获取表列表的架构
【发布时间】:2012-01-29 19:21:12
【问题描述】:

在 cakephp 中是否有一种简单的方法来获取特定表列表的表模式数组?例如,我想要表 a、b、d、f 和 z 的表模式;另外,有没有办法获取所有表的模式数组?

【问题讨论】:

  • 可以使用 Cake Console 上的cake schema generate -f 命令转储所有表。不过不确定具体的表格。
  • 有没有办法在控制器中调用它?
  • 你可能会使用 CakeSchema 类:api20.cakephp.org/class/cake-schema
  • 有机会使用示例吗? :D

标签: cakephp


【解决方案1】:

获取数据源,通过:

$db =& ConnectionManager::getDataSource('default');

$db =& $this->User->getDataSource(); // or any other model 

然后你可以通过调用获取所有的表:

$db->listSources()

并获取表的架构,例如“产品”

$db->describe('products');

但是,将字符串传递给describe仅在 CakePHP 2.0 中,1.3 需要模型对象。

【讨论】:

  • 我使用的是 1.3,所以我可以这样做 $this->loadModel($modelname); $db->describe($this->$modelname) 对吗?
  • 抱歉这么久才接受。这就像一个魅力!
  • 对于 3.x 有点不同:book.cakephp.org/3.0/en/orm/…
【解决方案2】:

试试这个

pr($this->Model->schema());

【讨论】:

    【解决方案3】:

    在任何表模型中,您都应该能够访问当前实例:

    $this->getConnection()->getSchemaCollection()->listTables();
    

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      相关资源
      最近更新 更多