Bu CakePHP'de MySQL alan alan türünü tespit etmek mümkün mü?

3 Cevap php

Ben biçimi tarihte ('dM-Y') bir MySQL veritabanı tüm datetime veri dönüştürme planlıyorum. Ben afterFind () geri çağırma bunu yapmayı düşünüyorum ama ben merak ediyorum, nasıl bu kadar ben koşullu ifadeleri oluşturabilirsiniz CakePKP'deki alan türü tespit ediyorsunuz?

Şimdiden teşekkürler!

3 Cevap

Kafamın üst Off: Model::$_schema alan türü dahil veritabanı tablo için şema, tutar. Bu otomatik doldurulur SQL DESCRIBE sorguları kullanarak Cake gereğidir. Sen $this->_schema alanının türünü öğrenmek için afterFind() geri arama ve erişim sorgu sonuçları üzerinden gidebilirsiniz. debug($this->_schema); yapılandırılmıştır nasıl görmek için deneyin.

dan 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;
}
?>

Ben ne sonra konum fonksiyonu getColumnType olduğunu düşünüyorum ().

Bu gibi kullanılır:

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

More info here: CakePHP Model::getColumnType API documentation