bjverde / sysgen

:elephant: SysGen is crud scaffolding. Generates PHP code using FormDin FrameWork
GNU General Public License v3.0
20 stars 10 forks source link

SysGen falhou gerar Joomla #110

Closed bjverde closed 4 years ago

bjverde commented 4 years ago

SysGen falhou ao gerar os formularios Joomla 2.5.8

tabela categories

$controller = new ();
$list = $controller->selectAll();
$frm->addSelectField('CHECKED_OUT', 'CHECKED OUT',true,$list,null,null,null,null,null,null,' ',null);
$frm->addDateField('CHECKED_OUT_TIME', 'CHECKED OUT TIME',true);
$controller = new ();
$list = $controller->selectAll();
$frm->addSelectField('ACCESS', 'ACCESS',false,$list,null,null,null,null,null,null,' ',null);
bjverde commented 4 years ago

tabela banners

$controller = new ();
$list = $controller->selectAll();
$frm->addSelectField('STATE', 'STATE',true,$list,null,null,null,null,null,null,' ',null);
$controller = new ();
$list = $controller->selectAll();
$frm->addSelectField('CATID', 'CATID',true,$list,null,null,null,null,null,null,' ',null);
bjverde commented 4 years ago

Fazendo o Select TDAO::getSqlToFieldsFromDatabaseMySQL https://github.com/bjverde/formDin/blob/master/base/classes/webform/TDAO.class.php#L1687

Apresenta colunas KEY_TYPE = MUL no caso FOREIGN KEY porém os campos REFERENCED_TABLE_NAME e REFERENCED_COLUMN_NAME estão em branco.

image

bjverde commented 4 years ago

Referencias sobre o probelma

O Valor MUL é apenas quando a coluna tem index MULtivalorado não quer dizer que seja um FK

bjverde commented 4 years ago

A correção é alterar o linha L1696 TDAO.class.php https://github.com/bjverde/formDin/blob/master/base/classes/webform/TDAO.class.php#L1696

Para

, case when upper(c.COLUMN_KEY) = 'PRI' then 'PK' when ( upper(c.COLUMN_KEY) = 'MUL' AND k.REFERENCED_TABLE_NAME is not null) then 'FOREIGN KEY' else 0 end  KEY_TYPE
bjverde commented 4 years ago

Depends on the next version of FormDin 4.7.9 and issue https://github.com/bjverde/formDin/issues/207