【问题标题】:PHPActiveRecord Find Column Names & Types & In Particular ENUM ComponentsPHPActiveRecord 查找列名和类型以及特定的 ENUM 组件
【发布时间】:2014-09-22 03:47:42
【问题描述】:

有没有办法获取所有列名,然后找出列是什么类型?例如,ENUM、VARCHAR、TINYINT 等...,特别是对于 ENUM,ENUM 的不同组成部分?

我在这里找到了一些东西 (http://www.phpactiverecord.org/docs/ActiveRecord/Column)

不确定如何从本文档中获取类型?

【问题讨论】:

  • byte255 的答案非常接近,我现在只需要找出 ENUM 值,而不是只返回 ENUM 类型。

标签: php mysql database phpactiverecord


【解决方案1】:

列出列名及其类型:

$columns = MyModel::table()->columns;
foreach ($columns as $column) {
    echo "{$column->name} - {$column->raw_type} <br>\n";
}

MyModel 是模型类的名称。

这将输出数据库模式中定义的“原始”数据库类型。 您还可以使用$column-&gt;type 作为 ActiveRecord 内部表示中的规范化类型。

查看 AR 源 herehere

【讨论】:

  • 感谢您的回答!这很好用,到目前为止帮助很大。我确实知道该值是 ENUM ......但不幸的是我没有得到构成 ENUM 的值。假设 ENUM 由诸如“是”、“否”、“也许”之类的值组成,我需要弄清楚它们是什么。
  • 与仅返回 ENUM 的当前答案相反。尽管如此,这对我来说是一个很好的开始探索。* - 忘记将其添加到最后的评论中。
  • @JosephAstrahan 不幸的是 PHP ActiveRecord 不解析 ENUM 值,see the source。所以没有现成的值列表。但是,您可以发出 SHOW COLUMNS 语句并自己解析 ENUM 值,请参阅this answer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 2019-08-11
  • 1970-01-01
相关资源
最近更新 更多