是否可以在CakePHP中检测MySQL字段的字段类型?

时间:2009-12-05 01:59:12

标签: php mysql cakephp

我打算将所有日期时间数据从MySQL数据库转换为格式日期('d-M-Y')。我想在afterFind()回调中做这个,但我想知道,如何检测CakePHP中的字段类型,以便创建条件语句?

提前致谢!

3 个答案:

答案 0 :(得分:2)

脱离我的头脑:Model::$_schema保存数据库表的架构,包括字段的类型。这是由Cake使用SQL DESCRIBE查询自动填充的。您可以在afterFind()回调中查看查询结果,然后访问$this->_schema以查找该字段的类型。请尝试debug($this->_schema);查看其结构。

答案 1 :(得分:0)

来自http://php.net/manual/en/function.checkdate.php

<?php
function is_date( $str )
{
  $stamp = strtotime( $str );

  if (!is_numeric($stamp))
  {
     return FALSE;
  }
  $month = date( 'm', $stamp );
  $day   = date( 'd', $stamp );
  $year  = date( 'Y', $stamp );

  if (checkdate($month, $day, $year))
  {
     return TRUE;
  }

  return FALSE;
}
?>

答案 2 :(得分:0)

我认为你所追求的是函数getColumnType()。

它的使用方式如下:

$fieldType = $model->getColumnType($fieldName);

更多信息: CakePHP Model::getColumnType API documentation