2009-12-05 2 views
0

Je prévois de convertir toutes les données datetime d'une base de données MySQL au format date ('d-M-Y'). Je pense à le faire dans le rappel afterFind() mais je me demande, comment détecter le type de champ dans CakePHP afin de pouvoir créer des instructions conditionnelles?Est-il possible de détecter le type de champ d'un champ MySQL dans CakePHP?

Merci d'avance!

+0

Aaaah, les merveilles d'avoir GetType() disponible ... – LorenVS

+1

Aaaah, la simplicité des types scalaires et savoir comment Manipulez-les bien ... Allez @LorenVS, le dénigrement de PHP n'est pas convoqué ici. – deceze

Répondre

2

Du haut de ma tête: Model::$_schema tient le schéma de la table de base de données, y compris le type du champ. Ceci est auto-rempli par Cake en utilisant des requêtes SQL DESCRIBE. Vous pouvez parcourir les résultats de votre requête dans un rappel afterFind() et accéder au $this->_schema pour connaître le type du champ. Essayez debug($this->_schema); pour voir comment c'est structuré.

0

de 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; 
} 
?> 
Questions connexes