Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Problema com TCheckGroup para inserir dados no BD Boa tarde a toda comunidade, Pablo e equipe. Gostaria muito de parabenizar a todos, mas principalmente ao Pablo pela excelente ferramenta. Venho do CodeIgniter, e estou engatinhando ainda neste ferramenta, mas pude perceber que o CodeIgniter esta bem atras do Adianti. Contudo gostaria muito de uma ajuda de vcs tenho um base de dados que é esta CREATE TABLE `prontuario` ( `idProntuar...
AR
Problema com TCheckGroup para inserir dados no BD  
Boa tarde a toda comunidade, Pablo e equipe.
Gostaria muito de parabenizar a todos, mas principalmente ao Pablo pela excelente ferramenta. Venho do CodeIgniter, e estou engatinhando ainda neste ferramenta, mas pude perceber que o CodeIgniter esta bem atras do Adianti.
Contudo gostaria muito de uma ajuda de vcs tenho um base de dados que é esta
CREATE TABLE `prontuario` ( `idProntuario` int(11) NOT NULL, `municipio` varchar(45) NOT NULL, `nomePaciente` varchar(45) NOT NULL, `dtNasc` date NOT NULL, `dtCadastro` date NOT NULL, `queixaPrincipal` varchar(255) NOT NULL, `hda` text NOT NULL, `hpp` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `quaisHPP` varchar(255) DEFAULT NULL, `medicamentosUso` varchar(255) DEFAULT NULL, `prontuariocol` varchar(45) DEFAULT NULL, `fatorRisco` varchar(45) DEFAULT NULL, `quais` varchar(255) DEFAULT NULL, `exameFisico` text, `tc` varchar(45) DEFAULT NULL, `dtTC` date DEFAULT NULL, `resultadoTC` varchar(255) DEFAULT NULL, `rm` varchar(45) DEFAULT NULL, `dtRM` date DEFAULT NULL, `resultadoRM` varchar(255) DEFAULT NULL, `eeg` varchar(45) DEFAULT NULL, `dtEEG` date DEFAULT NULL, `resultadoEEG` varchar(255) DEFAULT NULL, `bioquimica` varchar(45) DEFAULT NULL, `dtBIOQUIMICA` date DEFAULT NULL, `resultadoBIOQUIMICA` varchar(255) DEFAULT NULL, `dosagemserica` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `dtdosagemserica` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `resultadodosagemserica` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, `HD` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `conduta` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `receituario` ( `idReceituario` int(11) NOT NULL, `idPaciente` int(11) NOT NULL, `prescricao` text NOT NULL, `dtPrescricao` date NOT NULL, `prontuario_idProntuario` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `retorno` ( `idRetorno` int(11) NOT NULL, `decRetorno` text, `idPaciente` int(11) NOT NULL, `prontuario_idProntuario` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=''; -- -- Índices para tabela `prontuario` -- ALTER TABLE `prontuario` ADD PRIMARY KEY (`idProntuario`); -- -- Índices para tabela `receituario` -- ALTER TABLE `receituario` ADD PRIMARY KEY (`idReceituario`,`prontuario_idProntuario`), ADD KEY `fk_receituario_prontuario1_idx` (`prontuario_idProntuario`); -- -- Índices para tabela `retorno` -- ALTER TABLE `retorno` ADD PRIMARY KEY (`idRetorno`,`prontuario_idProntuario`), ADD KEY `fk_retorno_prontuario_idx` (`prontuario_idProntuario`); -- -- AUTO_INCREMENT de tabela `prontuario` -- ALTER TABLE `prontuario` MODIFY `idProntuario` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- AUTO_INCREMENT de tabela `receituario` -- ALTER TABLE `receituario` MODIFY `idReceituario` int(11) NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT de tabela `retorno` -- ALTER TABLE `retorno` MODIFY `idRetorno` int(11) NOT NULL AUTO_INCREMENT; -- -- Restrições para despejos de tabelas -- -- -- Limitadores para a tabela `receituario` -- ALTER TABLE `receituario` ADD CONSTRAINT `fk_receituario_prontuario1` FOREIGN KEY (`prontuario_idProntuario`) REFERENCES `prontuario` (`idProntuario`); -- -- Limitadores para a tabela `retorno` -- ALTER TABLE `retorno` ADD CONSTRAINT `fk_retorno_prontuario` FOREIGN KEY (`prontuario_idProntuario`) REFERENCES `prontuario` (`idProntuario`); COMMIT;


E criei o seguinte Modelo

  1. <?php
  2. /**
  3.  * Prontuario Active Record
  4.  * @author  <your-name-here>
  5.  */
  6. class Prontuario extends TRecord
  7. {
  8.     const TABLENAME 'prontuario';
  9.     const PRIMARYKEY'idProntuario';
  10.     const IDPOLICY =  'serial'// {max, serial}
  11.     
  12.     
  13.     /**
  14.      * Constructor method
  15.      */
  16.     public function __construct($id NULL$callObjectLoad TRUE)
  17.     {
  18.         parent::__construct($id$callObjectLoad);
  19.         parent::addAttribute('municipio');
  20.         parent::addAttribute('nomePaciente');
  21.         parent::addAttribute('dtNasc');
  22.         parent::addAttribute('dtCadastro');
  23.         parent::addAttribute('queixaPrincipal');
  24.         parent::addAttribute('hda');
  25.         parent::addAttribute('hpp');
  26.         parent::addAttribute('quaisHPP');
  27.         parent::addAttribute('medicamentosUso');
  28.         parent::addAttribute('prontuariocol');
  29.         parent::addAttribute('fatorRisco');
  30.         parent::addAttribute('quais');
  31.         parent::addAttribute('exameFisico');
  32.         parent::addAttribute('tc');
  33.         parent::addAttribute('dtTC');
  34.         parent::addAttribute('resultadoTC');
  35.         parent::addAttribute('rm');
  36.         parent::addAttribute('dtRM');
  37.         parent::addAttribute('resultadoRM');
  38.         parent::addAttribute('eeg');
  39.         parent::addAttribute('dtEEG');
  40.         parent::addAttribute('resultadoEEG');
  41.         parent::addAttribute('bioquimica');
  42.         parent::addAttribute('dtBIOQUIMICA');
  43.         parent::addAttribute('resultadoBIOQUIMICA');
  44.         parent::addAttribute('dosagemserica');
  45.         parent::addAttribute('dtdosagemserica');
  46.         parent::addAttribute('resultadodosagemserica');
  47.         parent::addAttribute('HD');
  48.         parent::addAttribute('conduta');
  49.     }
  50. }
  51. </code>

e baseado neste modelo criei o seguinte formulário
  1. <?php
  2. /**
  3.  * ProntuarioForm Form
  4.  * @author  <your name here>
  5.  */
  6. class ProntuarioForm1 extends TPage
  7. {
  8.     protected $form// form
  9.     
  10.     /**
  11.      * Form constructor
  12.      * @param $param Request
  13.      */
  14.     public function __construct$param )
  15.     {
  16.         parent::__construct();
  17.         
  18.         
  19.         // creates the form
  20.         $this->form = new BootstrapFormBuilder('form_Prontuario');
  21.         $this->form->setFormTitle('Prontuario');
  22.         $this->form->setFieldSizes('100%');
  23.         // create the form fields
  24.         $municipio = new TCombo('municipio');
  25.         $nomePaciente = new TEntry('nomePaciente');
  26.         $dtNasc = new TDate('dtNasc');
  27.         $dtCadastro = new TDate('dtCadastro');
  28.         $queixaPrincipal = new TEntry('queixaPrincipal');
  29.         $hda = new TText('hda');
  30.         $hpp = new TCheckGroup('hpp');
  31.         $quaisHPP = new TEntry('quaisHPP');
  32.         $medicamentosUso = new TEntry('medicamentosUso');
  33.         $fatorRisco = new TCheckGroup('fatorRisco');
  34.         $quais = new TEntry('quais');
  35.         $exameFisico = new TText('exameFisico');
  36.         $tc = new TCheckGroup('tc');
  37.         $dtTC = new TDate('dtTC');
  38.         $resultadoTC = new TEntry('resultadoTC');
  39.         $rm = new TCheckGroup('rm');
  40.         $dtRM = new TDate('dtRM');
  41.         $resultadoRM = new TEntry('resultadoRM');
  42.         $eeg = new TCheckGroup('eeg');
  43.         $dtEEG = new TDate('dtEEG');
  44.         $resultadoEEG = new TEntry('resultadoEEG');
  45.         $bioquimica = new TCheckGroup('bioquimica');
  46.         $dtBIOQUIMICA = new TDate('dtBIOQUIMICA');
  47.         $resultadoBIOQUIMICA = new TEntry('resultadoBIOQUIMICA');
  48.         $dosagemserica = new TCheckGroup('dosagemSérica');
  49.         $dtdosagemserica = new TDate('dtDosagemSérica');
  50.         $resultadodosagemserica = new TEntry('resultadoDosagemSérica');
  51.         $HD = new TEntry('HD');
  52.         $conduta = new TText('conduta');
  53.         
  54.         // Adicionando itens aos Checkbox e aos combos
  55.         
  56.         $itemsTC = ['TC'=>'TC'];
  57.         $tc->addItems($itemsTC);
  58.         $itemsMuni = ( ['São Lourenço' => 'São Lourenço''Cristina' => 'Cristina''Itanhandu' => 'Itanhandu'] );
  59.         $municipio->addItems($itemsMuni);
  60.         $hpp->setLayout('horizontal');
  61.         $itemsHPP = ( ['HAS' => 'HAS ''DM' => ' DM ''OUTRAS' => ' OUTRAS'] );
  62.         $hpp->addItems($itemsHPP);
  63.         $fatorRisco->setLayout('horizontal');
  64.         $itemsfatorRisco = ( ['Tabagista' => 'Tabagista ''Etilista' => ' Etilista ''Drogas Ilícitas' => ' Drogas Ilícitas'] );
  65.         $fatorRisco->addItems($itemsfatorRisco);
  66.         $itemsRM = ['RM'=>'RM'];
  67.         $rm->addItems($itemsRM);
  68.         $itemsEEG = ['EEG'=>'EEG'];
  69.         $eeg->addItems($itemsEEG);
  70.         $itemsbioquimica = ['BIOQUIMICA'=>'BIOQUÍMICA'];
  71.         $bioquimica->addItems($itemsbioquimica);
  72.         $itemsDS = ['DOSAGEM SERICA'=>'DOSAGEM SÉRICA'];
  73.         $dosagemserica->addItems($itemsDS);
  74.         
  75.         
  76.         
  77.         // Adicionando Mascaras ao form
  78.         $dtNasc->setMask('dd/mm/yyyy');
  79.         $dtNasc->setDatabaseMask('yyyy-mm-dd');
  80.         
  81.         $dtCadastro->setMask('dd/mm/yyyy');
  82.         $dtCadastro->setDatabaseMask('yyyy-mm-dd');
  83.         
  84.         $dtTC->setMask('dd/mm/yyyy');
  85.         $dtTC->setDatabaseMask('yyyy-mm-dd');
  86.         
  87.         $dtRM->setMask('dd/mm/yyyy');
  88.         $dtRM->setDatabaseMask('yyyy-mm-dd');
  89.         
  90.         $dtEEG->setMask('dd/mm/yyyy');
  91.         $dtEEG->setDatabaseMask('yyyy-mm-dd');
  92.         
  93.         $dtBIOQUIMICA->setMask('dd/mm/yyyy');
  94.         $dtBIOQUIMICA->setDatabaseMask('yyyy-mm-dd');
  95.         
  96.         $dtdosagemserica->setMask('dd/mm/yyyy');
  97.         $dtdosagemserica->setDatabaseMask('yyyy-mm-dd');
  98.         // add the fields
  99.         $row $this->form->addFields( [ new TLabel('Municipio'), $municipio ] ,
  100.                                        [ new TLabel('Dt Cadastro'), $dtCadastro ] ,
  101.                                        [ new TLabel('Nome Paciente'), $nomePaciente ] ,
  102.                                        [ new TLabel('Dt Nasc'), $dtNasc ]);
  103.         $row->layout = ['col-sm-3''col-sm-2''col-sm-5''col-sm-2' ];
  104.                                       
  105.         $this->form->addFields( [ new TLabel('Queixa Principal'), $queixaPrincipal ] );
  106.         $this->form->addFields( [ new TLabel('HDA'), $hda ] );
  107.         
  108.         $row $this->form->addFields( [ new TLabel('HPP'), $hpp ], 
  109.                                        [ new TLabel('Quais?'), $quaisHPP ] );
  110.         $row->layout = ['col-sm-4''col-sm-8'];
  111.         
  112.         $this->form->addFields( [ new TLabel('Medic/tos Uso'), $medicamentosUso ] );
  113.         
  114.         $row $this->form->addFields( [ new TLabel('Fator Risco'), $fatorRisco ] ,
  115.                                        [ new TLabel('Quais'), $quais ] );
  116.         $row->layout = ['col-sm-4''col-sm-8'];                               
  117.         $this->form->addFields( [ new TLabel('Exame Fisico'), $exameFisico ] );
  118.         
  119.         $label2 = new TLabel('SOLICITAÇÃO DE EXAMES''#5A73DB'12'');
  120.         $label2->style='text-align:left;border-bottom:1px solid #c0c0c0;width:100%';
  121.         $this->form->addContent( [$label2] );
  122.         $row $this->form->addFields([ $tc ] ,
  123.                                       [ new TLabel('Dt TC'), $dtTC ] ,
  124.                                       [ new TLabel('Resultado TC'), $resultadoTC ] );
  125.         $row->layout = ['col-sm-2''col-sm-3''col-sm-7'];      
  126.              
  127.         $label2 = new TLabel('RESSONÂNCIA MAGNÉTICA''#5A73DB'12'');
  128.         $label2->style='text-align:left;border-bottom:1px solid #c0c0c0;width:100%';
  129.         $this->form->addContent( [$label2] );
  130.                            
  131.         $row $this->form->addFields( [  $rm ] ,
  132.                                        [ new TLabel('Dt RM'), $dtRM ] ,
  133.                                        [ new TLabel('Resultado RM'), $resultadoRM ] );
  134.                                        
  135.          $row->layout = ['col-sm-2''col-sm-3''col-sm-7'];
  136.          
  137.         $label2 = new TLabel('ELETROENCEFALOGRAMA - EEG''#5A73DB'12'');
  138.         $label2->style='text-align:left;border-bottom:1px solid #c0c0c0;width:100%';
  139.         $this->form->addContent( [$label2] );
  140.         
  141.         $row $this->form->addFields( [ $eeg ] ,
  142.                                        [ new TLabel('Dt EEG'), $dtEEG ] ,
  143.                                        [ new TLabel('Resultado EEG'), $resultadoEEG ] );
  144.         $row->layout = ['col-sm-2''col-sm-3''col-sm-7'];
  145.          
  146.         $label2 = new TLabel('BIOQUÍMICA''#5A73DB'12'');
  147.         $label2->style='text-align:left;border-bottom:1px solid #c0c0c0;width:100%';
  148.         $this->form->addContent( [$label2] );                               
  149.         $row $this->form->addFields(  [ $bioquimica ] ,
  150.                                         [ new TLabel('Dt Bioquimica'), $dtBIOQUIMICA ] ,
  151.                                         [ new TLabel('Resultado Bioquimica'), $resultadoBIOQUIMICA ] );
  152.         $row->layout = ['col-sm-2''col-sm-3''col-sm-7'];
  153.         
  154.         $label2 = new TLabel('DOSAGEM SÉRICA''#5A73DB'12'');
  155.         $label2->style='text-align:left;border-bottom:1px solid #c0c0c0;width:100%';
  156.         $this->form->addContent( [$label2] );
  157.         
  158.         $row $this->form->addFields([ $dosagemserica ],
  159.                                       [ new TLabel('Dt D. Sérica'), $dtdosagemserica ] ,
  160.                                       [ new TLabel('Resultado D. Sérica'), $resultadodosagemserica ] );
  161.         $row->layout = ['col-sm-2''col-sm-3''col-sm-7'];                              
  162.         $this->form->addFields( [ new TLabel('HD'), $HD ] );
  163.         $this->form->addFields( [ new TLabel('Conduta'), $conduta ] );
  164.         
  165.         // set sizes
  166.         $municipio->setSize('100%');
  167.         $nomePaciente->setSize('100%');
  168.         $dtNasc->setSize('100%');
  169.         $dtCadastro->setSize('100%');
  170.         $queixaPrincipal->setSize('100%');
  171.         $hda->setSize('100%');
  172.         $hpp->setSize('100%');
  173.         $quaisHPP->setSize('100%');
  174.         $medicamentosUso->setSize('100%');
  175.         $fatorRisco->setSize('100%');
  176.         $quais->setSize('100%');
  177.         $exameFisico->setSize('100%');
  178.         $tc->setSize('100%');
  179.         $dtTC->setSize('100%');
  180.         $resultadoTC->setSize('100%');
  181.         $rm->setSize('100%');
  182.         $dtRM->setSize('100%');
  183.         $resultadoRM->setSize('100%');
  184.         $eeg->setSize('100%');
  185.         $dtEEG->setSize('100%');
  186.         $resultadoEEG->setSize('100%');
  187.         $bioquimica->setSize('100%');
  188.         $dtBIOQUIMICA->setSize('100%');
  189.         $resultadoBIOQUIMICA->setSize('100%');
  190.         $dosagemserica->setSize('100%');
  191.         $dtdosagemserica->setSize('100%');
  192.         $resultadodosagemserica->setSize('100%');
  193.         $HD->setSize('100%');
  194.         $conduta->setSize('100%');
  195.         if (!empty($idProntuario))
  196.         {
  197.             $idProntuario->setEditable(FALSE);
  198.         }
  199.         
  200.         /** samples
  201.          $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  202.          $fieldX->setSize( '100%' ); // set size
  203.          **/
  204.          
  205.         // create the form actions
  206.         $btn $this->form->addAction(_t('Save'), new TAction([$this'onSave']), 'fa:save');
  207.         $btn->class 'btn btn-sm btn-primary';
  208.         $this->form->addActionLink(_t('New'),  new TAction([$this'onEdit']), 'fa:eraser red');
  209.         
  210.         // vertical box container
  211.         $container = new TVBox;
  212.         $container->style 'width: 100%';
  213.         // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  214.         $container->add($this->form);
  215.         
  216.         parent::add($container);
  217.     }
  218.     /**
  219.      * Save form data
  220.      * @param $param Request
  221.      */
  222.     public function onSave$param )
  223.     {
  224.         try
  225.         {
  226.             TTransaction::open('prontuario'); // open a transaction
  227.             
  228.             /**
  229.             // Enable Debug logger for SQL operations inside the transaction
  230.             TTransaction::setLogger(new TLoggerSTD); // standard output
  231.             TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  232.             **/
  233.             
  234.             $this->form->validate(); // validate form data
  235.             $data $this->form->getData(); // get form data as array
  236.             
  237.             $object = new Prontuario;  // create an empty object
  238.             $object->fromArray( (array) $data); // load the object with data
  239.             $object->store(); // save the object
  240.             
  241.             // get the generated idProntuario
  242.             $data->idProntuario $object->idProntuario;
  243.             
  244.             $this->form->setData($data); // fill form data
  245.             TTransaction::close(); // close the transaction
  246.             
  247.             new TMessage('info'AdiantiCoreTranslator::translate('Record saved'));
  248.         }
  249.         catch (Exception $e// in case of exception
  250.         {
  251.             new TMessage('error'$e->getMessage()); // shows the exception error message
  252.             $this->form->setData$this->form->getData() ); // keep form data
  253.             TTransaction::rollback(); // undo all pending operations
  254.         }
  255.     }
  256.     
  257.     /**
  258.      * Clear form data
  259.      * @param $param Request
  260.      */
  261.     public function onClear$param )
  262.     {
  263.         $this->form->clear(TRUE);
  264.     }
  265.     
  266.     /**
  267.      * Load object to form data
  268.      * @param $param Request
  269.      */
  270.     public function onEdit$param )
  271.     {
  272.         try
  273.         {
  274.             if (isset($param['key']))
  275.             {
  276.                 $key $param['key'];  // get the parameter $key
  277.                 TTransaction::open('prontuario'); // open a transaction
  278.                 $object = new Prontuario($key); // instantiates the Active Record
  279.                 $this->form->setData($object); // fill the form
  280.                 TTransaction::close(); // close the transaction
  281.             }
  282.             else
  283.             {
  284.                 $this->form->clear(TRUE);
  285.             }
  286.         }
  287.         catch (Exception $e// in case of exception
  288.         {
  289.             new TMessage('error'$e->getMessage()); // shows the exception error message
  290.             TTransaction::rollback(); // undo all pending operations
  291.         }
  292.     }
  293. }
  294. </code>


Esta funcionando em parte efetuando o cadastro no banco que postei acima contudo os campos que constam com TCheckGroup não esta inserindo os valores em seus respectivos campos na tabela.

Está é minha dúvida como fazer para que este campo cadastre ou eu fiz alguma coisa errada que não percebi.

Desde já agradeço a atenção de vcs e aguardo ansioso um feedback

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (5)


MC

Alex Boas,

Veirifique no seu formulario nas linhas 49/50/51 tem caracter estranhos, ve se isso ocorre no formulario real.

Use a função var_dump( $param ). no onSave para saber o que chega, e tambem no var_dump( $data ).

Assim vc terá uma posição do que esta chegando, nestes campos ou em qualquer outro que vc quizer..

var_dump( ) e o nosso anjo da guarda para depuração.
AR

Marcos muito obrigado pelo feedback ajustei as linha 49/50/51 e adicionei o var_dump() e o resultado foi este
object(stdClass)#234 (29) { ["municipio"]=> string(14) "São Lourenço" ["dtCadastro"]=> string(10) "2020-09-17" ["nomePaciente"]=> string(17) "ALEX XAVIER ROSAQ" ["dtNasc"]=> string(10) "1973-08-16" ["queixaPrincipal"]=> string(5) "TESTR" ["hda"]=> string(5) "teste" ["hpp"]=> array(1) { [0]=> string(3) "HAS" } ["quaisHPP"]=> string(0) "" ["medicamentosUso"]=> string(0) "" ["fatorRisco"]=> array(1) { [0]=> string(9) "Tabagista" } ["quais"]=> string(0) "" ["exameFisico"]=> string(0) "" ["tc"]=> array(1) { [0]=> string(2) "TC" } ["dtTC"]=> string(0) "" ["resultadoTC"]=> string(0) "" ["rm"]=> array(1) { [0]=> string(2) "RM" } ["dtRM"]=> string(0) "" ["resultadoRM"]=> string(0) "" ["eeg"]=> array(1) { [0]=> string(3) "EEG" } ["dtEEG"]=> string(0) "" ["resultadoEEG"]=> string(0) "" ["bioquimica"]=> array(1) { [0]=> string(10) "BIOQUIMICA" } ["dtBIOQUIMICA"]=> string(0) "" ["resultadoBIOQUIMICA"]=> string(0) "" ["dosagemserica"]=> array(1) { [0]=> string(14) "DOSAGEM SERICA" } ["dtDosagemserica"]=> string(0) "" ["resultadoDosagemserica"]=> string(0) "" ["HD"]=> string(0) "" ["conduta"]=> string(0) "" }
AR

Pessoal como faço para pegar este valor e onde?

["fatorRisco"]=> array(1) { [0]=> string(9) "Tabagista" } ["tc"]=> array(1) { [0]=> string(2) "TC" } ["rm"]=> array(1) { [0]=> string(2) "RM" }

Dentre os outros que utilizam o TCheckGroup
MC

Alex boas

  1. <?php           
  2.             $this->form->validate(); // Faz a validadação do seu formulario
  3.             $data $this->form->getData(); // get form data as array
  4.             
  5.             $object = new Prontuario;  // Cria um objeto com a estrutura do Prontuario
  6.             $object->fromArray( (array) $data); //  Relaciona os campos da array $data com os campos do object criado acima
  7. ?>


Na estrura que retornou o var_dump($data), vc verá que cada string entre colchetes terá que ser igual
aos campos criados no $object ou seja:

$object->municipio = $data->municipio;

Caso seje diferente voce poderá atribui-lo da seguinte forma: lembre-se é um exemplo;

$object->municipio = 'São Paulo';
ou
$cidade = 'São Paulo'
$object->municipio = $cidade';

Lembrando que o PHP é casesensitive.

Mostro aqui tambem como vc acessa os dados, no caso do $param poderá "como exemplo" ser acessados desta forma
$param['municipio'];

var_dump( $param['municipio'] );

var_dump( $data->municipio );
MC

Alex,


notei tambem que esta retornando um array multidimencional,
hpp, fatorRisco, tc, e outros...
Neste caso, o relacionamento $object e $data irá falhar nestes campos, assim vc poderá preparar o valor e depois adciona-lo

["hpp"]=> array(1) { [0]=> string(3) "HAS"}

No exemplo acima vc pode acessar o valor da seguinte forma

$data->hpp[0] isso irá retornar o valor "HAS"

  1. <?php           
  2.             $this->form->validate(); // Faz a validadação do seu formulario
  3.             $data $this->form->getData(); // get form data as array
  4.             
  5.             $object = new Prontuario;  // Cria um objeto com a estrutura do Prontuario
  6.             $object->fromArray( (array) $data); //  Relaciona os campos da array $data com os campos do object criado acima
  7.             $object->hpp $data->hpp[0];
  8.             $object->store();
  9. ?>


No entanto se outros valore forem atribuidos, e vc quiser eles no mesmo campos vc terá que usar um "foreach" antes de atribuir o valor ao campo