@@ -88,7 +88,15 @@ public function __construct() {
8888 k2."REFERENCED_TABLE_SCHEMA" = ? AND
8989 k1."TABLE_NAME" COLLATE \'utf8_bin \' = k2."TABLE_NAME" COLLATE \'utf8_bin \' AND
9090 k1."REFERENCED_TABLE_NAME" COLLATE \'utf8_bin \' = ? AND
91- k2."REFERENCED_TABLE_NAME" COLLATE \'utf8_bin \' IN ? '
91+ k2."REFERENCED_TABLE_NAME" COLLATE \'utf8_bin \' IN ? ' ,
92+ 'reflect_type ' => 'SELECT
93+ "COLUMN_NAME", "COLUMN_TYPE"
94+ FROM
95+ "INFORMATION_SCHEMA"."COLUMNS"
96+ WHERE
97+ "TABLE_SCHEMA" = ? AND
98+ "TABLE_NAME" = ?
99+ '
92100 );
93101 }
94102
@@ -2217,6 +2225,11 @@ protected function swagger($settings) {
22172225 foreach ($ primaryKeys as $ primaryKey ) {
22182226 $ table_fields [$ table ['name ' ]][$ primaryKey ]->primaryKey = true ;
22192227 }
2228+ $ result = $ this ->db ->query ($ this ->db ->getSql ('reflect_type ' ),array ($ database ,$ table_list [0 ]));
2229+ while ($ row = $ this ->db ->fetchRow ($ result )) {
2230+ $ expl = explode ('( ' ,$ row [1 ]);
2231+ $ table_fields [$ table ['name ' ]][$ row [0 ]]->type = $ expl [0 ];
2232+ }
22202233 }
22212234
22222235 foreach (array ('root_actions ' ,'id_actions ' ) as $ path ) {
@@ -2341,6 +2354,9 @@ protected function swagger($settings) {
23412354 if ($ k >0 ) echo ', ' ;
23422355 echo '" ' .$ field .'": { ' ;
23432356 echo '"type": "string" ' ;
2357+ if (isset ($ action ['fields ' ][$ field ]->type )) {
2358+ echo ',"db-type": ' .json_encode ($ action ['fields ' ][$ field ]->type );
2359+ }
23442360 if (isset ($ action ['fields ' ][$ field ]->referenced )) {
23452361 echo ',"x-referenced": ' .json_encode ($ action ['fields ' ][$ field ]->referenced );
23462362 }
0 commit comments