Problema com TDBCheckGroup Bom dia a todos. Tenho um formulário de cadastro que não está carregando os dados do TDBCheckGroup na tela de edição de cadastro (Todos os outros dados são cadastrados menos o do TDBCheckGroup), não consigo encontrar o erro alguem pode me ajudar? Desde já agradeço. CÓDIGO DO FORM ...
ET
Problema com TDBCheckGroup  
Bom dia a todos.
Tenho um formulário de cadastro que não está carregando os dados do TDBCheckGroup na tela de edição de cadastro (Todos os outros dados são cadastrados menos o do TDBCheckGroup), não consigo encontrar o erro alguem pode me ajudar?
Desde já agradeço.

CÓDIGO DO FORM



 
  1. <?php
  2. /**
  3. * AlunoForm Form
  4. * @author <your name here>
  5. */
  6. class AlunoForm extends TPage
  7. {
  8. protected $form; // form
  9. /**
  10. * Form constructor
  11. * @param $param Request
  12. */
  13. public function __construct( $param )
  14. {
  15. parent::__construct();
  16. // creates the form
  17. $this->form = new BootstrapFormBuilder('form_Aluno');
  18. $this->form->setFormTitle('Cadastro de Aluno');
  19. // create the form fields
  20. $id = new TEntry('id');
  21. $nome = new TEntry('nome');
  22. $serie_id = new TDBCombo('serie_id', 'farolerp', 'Serie', 'id', 'descricao');
  23. $dt_nascimento = new TDate('dt_nascimento');
  24. $municipio_id = new TDBUniqueSearch('municipio_id', 'farolerp', 'Municipio', 'id', 'nome');
  25. $estado_id = new TDBCombo('estado_id', 'farolerp', 'Estado', 'id', 'nome');
  26. $n_documento = new TEntry('n_documento');
  27. $tipo_documento = new TEntry('tipo_documento');
  28. $nome_pai = new TEntry('nome_pai');
  29. $profissao_pai = new TEntry('profissao_pai');
  30. $nome_mae = new TEntry('nome_mae');
  31. $profissao_mae = new TEntry('profissao_mae');
  32. $endereco = new TEntry('endereco');
  33. $cidade = new TDBUniqueSearch('cidade', 'farolerp', 'Municipio', 'id', 'nome');
  34. $telefone = new TEntry('telefone');
  35. $celular = new TEntry('celular');
  36. $local_origem_aluno_id = new TDBRadioGroup('local_origem_aluno_id', 'farolerp', 'LocalOrigemAluno', 'id', 'nome');
  37. $rede_origem_aluno_id = new TDBRadioGroup('rede_origem_aluno_id', 'farolerp', 'RedeOrigemAluno', 'id', 'nome');
  38. $frequencia_ano_anterior_id = new TDBRadioGroup('frequencia_ano_anterior_id', 'farolerp', 'FrequenciaAnoAnterior', 'id', 'descricao');
  39. $nivel_ensino_origem_aluno_id = new TDBRadioGroup('nivel_ensino_origem_aluno_id', 'farolerp', 'NivelEnsinoOrigemAluno', 'id', 'descricao');
  40. $situacao_ingresso_id = new TDBRadioGroup('situacao_ingresso_id', 'farolerp', 'SituacaoIngresso', 'id', 'descricao');
  41. $educacao_especial_id = new TDBCheckGroup('educacao_especial_id', 'farolerp', 'EducacaoEspecial', 'id', 'descricao');
  42. $tipo_sanguineo = new TEntry('tipo_sanguineo');
  43. $necessidades_especiais_id = new TDBCheckGroup('necessidades_especiais_id', 'farolerp', 'NecessidadesEspeciais', 'id', 'descricao');
  44. $problemas_alergicos = new TCombo('problemas_alergicos');
  45. $descricao_alergia = new TText('descricao_alergia');
  46. $outros = new TText('outros');
  47. // add the combo filds problemas_alergicos
  48. $problemas_alergicos->addItems(array('SIM'=>'SIM',
  49. 'NÃO'=>'NÃO'
  50. ));
  51. //Rádio Goups
  52. //local_origem_aluno_id
  53. $local_origem_aluno_id->setLayout('horizontal');
  54. if ($local_origem_aluno_id->getLabels())
  55. {
  56. foreach ($local_origem_aluno_id->getLabels() as $label)
  57. {
  58. $label->setSize(200);
  59. }
  60. }
  61. //rede_origem_aluno_id
  62. $rede_origem_aluno_id->setLayout('horizontal');
  63. if ($rede_origem_aluno_id->getLabels())
  64. {
  65. foreach ($rede_origem_aluno_id->getLabels() as $label)
  66. {
  67. $label->setSize(200);
  68. }
  69. }
  70. //frequencia_ano_anterior_id
  71. $frequencia_ano_anterior_id->setLayout('horizontal');
  72. if ($frequencia_ano_anterior_id->getLabels())
  73. {
  74. foreach ($frequencia_ano_anterior_id->getLabels() as $label)
  75. {
  76. $label->setSize(200);
  77. }
  78. }
  79. //nivel_ensino_origem_aluno_id
  80. $nivel_ensino_origem_aluno_id->setLayout('horizontal');
  81. if ($nivel_ensino_origem_aluno_id->getLabels())
  82. {
  83. foreach ($nivel_ensino_origem_aluno_id->getLabels() as $label)
  84. {
  85. $label->setSize(400);
  86. }
  87. }
  88. //educacao_especial_id
  89. $educacao_especial_id->setLayout('horizontal');
  90. if ($educacao_especial_id->getLabels())
  91. {
  92. foreach ($educacao_especial_id->getLabels() as $label)
  93. {
  94. $label->setSize(200);
  95. }
  96. }
  97. //necessidades_especiais_id
  98. $necessidades_especiais_id->setLayout('horizontal');
  99. if ($necessidades_especiais_id->getLabels())
  100. {
  101. foreach ($necessidades_especiais_id->getLabels() as $label)
  102. {
  103. $label->setSize(400);
  104. }
  105. }
  106. // Formatação de datas
  107. $dt_nascimento->setDatabaseMask('yyyy/mm/dd');
  108. $dt_nascimento->setMask('dd/mm/yyyy');
  109. $nome->setMaxLength(100);
  110. $n_documento->setMaxLength(40);
  111. $tipo_documento->setMaxLength(100);
  112. $nome_pai->setMaxLength(100);
  113. $profissao_pai->setMaxLength(100);
  114. $nome_mae->setMaxLength(100);
  115. $profissao_mae->setMaxLength(100);
  116. $endereco->setMaxLength(100);
  117. $telefone->setMask('(99)9999-9999');
  118. $celular->setMask('(99)9.9999-9999');
  119. $tipo_sanguineo->setMaxLength(2);
  120. // add the fields
  121. $this->form->addContent( [new TFormSeparator('<b>Identificação do aluno</b>')]);
  122. $this->form->addFields( [ new TLabel('Código') ], [ $id ] );
  123. $this->form->addFields( [ new TLabel('Nome', '#ff0000') ], [ $nome ] );
  124. $this->form->addFields( [ new TLabel('Série') ], [ $serie_id ], [ new TLabel('Data Nascimento') ], [ $dt_nascimento ] );
  125. $this->form->addFields( [ new TLabel('Municipio') ], [ $municipio_id ], [ new TLabel('Estado') ], [ $estado_id ] );
  126. $this->form->addFields( [ new TLabel('Nº do Documento') ], [ $n_documento ], [ new TLabel('Tipo de Documento') ], [ $tipo_documento ] );
  127. $this->form->addFields( [ new TLabel('Nome do Pai') ], [ $nome_pai ], [ new TLabel('Profissão do Pai') ], [ $profissao_pai ] );
  128. $this->form->addFields( [ new TLabel('Nome Mãe') ], [ $nome_mae ], [ new TLabel('Profissão da Mãe') ], [ $profissao_mae ] );
  129. $this->form->addFields( [ new TLabel('Endereço') ], [ $endereco ], [ new TLabel('Cidade') ], [ $cidade ] );
  130. $this->form->addFields( [ new TLabel('Telefone') ], [ $telefone ], [ new TLabel('Celular') ], [ $celular ] );
  131. $this->form->addContent( [new TFormSeparator('<b>Local de origem do aluno</b>')]);
  132. $this->form->addFields( [ new TLabel('') ],[ $local_origem_aluno_id ] );
  133. $this->form->addContent( [new TFormSeparator('<b>Rede de origem do aluno</b>')]);
  134. $this->form->addFields( [ new TLabel('') ], [ $rede_origem_aluno_id ] );
  135. $this->form->addContent( [new TFormSeparator('<b>Frequência á escola em relação ao ano anterior</b>')]);
  136. $this->form->addFields( [ new TLabel('') ], [ $frequencia_ano_anterior_id ] );
  137. $this->form->addContent( [new TFormSeparator('<b>Nivel de ensino de origem do aluno</b>')]);
  138. $this->form->addFields( [ new TLabel('') ], [ $nivel_ensino_origem_aluno_id ] );
  139. $this->form->addContent( [new TFormSeparator('<b>Situacao do aluno na série que está ingressando</b>')]);
  140. $this->form->addFields( [ new TLabel('') ], [ $situacao_ingresso_id ] );
  141. $this->form->addContent( [new TFormSeparator('<b>Educação Especial</b>')]);
  142. $this->form->addFields( [ new TLabel('') ], [ $educacao_especial_id ] );
  143. $this->form->addFields( [ new TLabel('Tipo Sanguíneo') ], [ $tipo_sanguineo ] );
  144. $this->form->addContent( [new TFormSeparator('<b>Aluno de necessidades especiais</b>')]);
  145. $this->form->addFields( [ new TLabel('') ], [ $necessidades_especiais_id ] );
  146. $this->form->addFields( [ new TLabel('Problemas Alérgicos') ], [ $problemas_alergicos ] );
  147. $this->form->addFields( [ new TLabel('Descrição da Alergia') ], [ $descricao_alergia ] );
  148. $this->form->addFields( [ new TLabel('Outros') ], [ $outros ] );
  149. $nome->addValidation('Nome', new TRequiredValidator);
  150. // set sizes
  151. $id->setSize('100');
  152. $nome->setSize('100%');
  153. $serie_id->setSize('100%');
  154. $dt_nascimento->setSize('100%');
  155. $municipio_id->setSize('100%');
  156. $estado_id->setSize('100%');
  157. $n_documento->setSize('100%');
  158. $tipo_documento->setSize('100%');
  159. $nome_pai->setSize('100%');
  160. $profissao_pai->setSize('100%');
  161. $nome_mae->setSize('100%');
  162. $profissao_mae->setSize('100%');
  163. $endereco->setSize('100%');
  164. $cidade->setSize('100%');
  165. $telefone->setSize('100%');
  166. $celular->setSize('100%');
  167. $local_origem_aluno_id->setSize('100%');
  168. $rede_origem_aluno_id->setSize('100%');
  169. $frequencia_ano_anterior_id->setSize('100%');
  170. $nivel_ensino_origem_aluno_id->setSize('100%');
  171. $situacao_ingresso_id->setSize('100%');
  172. $educacao_especial_id->setSize('100%');
  173. $tipo_sanguineo->setSize('38%');
  174. $necessidades_especiais_id->setSize('100%');
  175. $problemas_alergicos->setSize('38%');
  176. $descricao_alergia->setSize('100%');
  177. $outros->setSize('100%');
  178. if (!empty($id))
  179. {
  180. $id->setEditable(FALSE);
  181. }
  182. /** samples
  183. $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation
  184. $fieldX->setSize( '100%' ); // set size
  185. **/
  186. // create the form actions
  187. $btn = $this->form->addAction(_t('Save'), new TAction([$this, 'onSave']), 'fa:save');
  188. $btn->class = 'btn btn-sm btn-primary';
  189. $this->form->addActionLink(_t('New'), new TAction([$this, 'onEdit']), 'fa:eraser red');
  190. // vertical box container
  191. $container = new TVBox;
  192. $container->style = 'width: 100%';
  193. // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  194. $container->add($this->form);
  195. parent::add($container);
  196. }
  197. /**
  198. * Save form data
  199. * @param $param Request
  200. */
  201. public function onSave( $param )
  202. {
  203. try
  204. {
  205. TTransaction::open('farolerp'); // open a transaction
  206. /**
  207. // Enable Debug logger for SQL operations inside the transaction
  208. TTransaction::setLogger(new TLoggerSTD); // standard output
  209. TTransaction::setLogger(new TLoggerTXT('log.txt')); // file
  210. **/
  211. $this->form->validate(); // validate form data
  212. $data = $this->form->getData(); // get form data as array
  213. $object = new Aluno; // create an empty object
  214. $object->fromArray( (array) $data); // load the object with data
  215. $object->store(); // save the object
  216. // get the generated id
  217. $data->id = $object->id;
  218. $this->form->setData($data); // fill form data
  219. TTransaction::close(); // close the transaction
  220. new TMessage('info', AdiantiCoreTranslator::translate('Record saved'));
  221. }
  222. catch (Exception $e) // in case of exception
  223. {
  224. new TMessage('error', $e->getMessage()); // shows the exception error message
  225. $this->form->setData( $this->form->getData() ); // keep form data
  226. TTransaction::rollback(); // undo all pending operations
  227. }
  228. }
  229. /**
  230. * Clear form data
  231. * @param $param Request
  232. */
  233. public function onClear( $param )
  234. {
  235. $this->form->clear(TRUE);
  236. }
  237. /**
  238. * Load object to form data
  239. * @param $param Request
  240. */
  241. public function onEdit( $param )
  242. {
  243. try
  244. {
  245. if (isset($param['key']))
  246. {
  247. $key = $param['key']; // get the parameter $key
  248. TTransaction::open('farolerp'); // open a transaction
  249. $object = new Aluno($key); // instantiates the Active Record
  250. $this->form->setData($object); // fill the form
  251. TTransaction::close(); // close the transaction
  252. }
  253. else
  254. {
  255. $this->form->clear(TRUE);
  256. }
  257. }
  258. catch (Exception $e) // in case of exception
  259. {
  260. new TMessage('error', $e->getMessage()); // shows the exception error message
  261. TTransaction::rollback(); // undo all pending operations
  262. }
  263. }
  264. }
  265. ?>


MODEL


 
  1. <?php
  2. /**
  3. * Aluno Active Record
  4. * @author <your-name-here>
  5. */
  6. class Aluno extends TRecord
  7. {
  8. const TABLENAME = 'aluno';
  9. const PRIMARYKEY= 'id';
  10. const IDPOLICY = 'serial'; // {max, serial}
  11. private $serie;
  12. private $municipio;
  13. private $rede_origem_aluno;
  14. private $estado;
  15. private $situacao_ingresso;
  16. private $local_origem_aluno;
  17. private $frequencia_ano_anterior;
  18. private $nivel_ensino_origem_aluno;
  19. private $educacao_especial;
  20. private $necessidades_especiais;
  21. /**
  22. * Constructor method
  23. */
  24. public function __construct($id = NULL, $callObjectLoad = TRUE)
  25. {
  26. parent::__construct($id, $callObjectLoad);
  27. parent::addAttribute('nome');
  28. parent::addAttribute('serie_id');
  29. parent::addAttribute('dt_nascimento');
  30. parent::addAttribute('municipio_id');
  31. parent::addAttribute('estado_id');
  32. parent::addAttribute('n_documento');
  33. parent::addAttribute('tipo_documento');
  34. parent::addAttribute('nome_pai');
  35. parent::addAttribute('profissao_pai');
  36. parent::addAttribute('nome_mae');
  37. parent::addAttribute('profissao_mae');
  38. parent::addAttribute('endereco');
  39. parent::addAttribute('cidade');
  40. parent::addAttribute('telefone');
  41. parent::addAttribute('celular');
  42. parent::addAttribute('local_origem_aluno_id');
  43. parent::addAttribute('rede_origem_aluno_id');
  44. parent::addAttribute('frequencia_ano_anterior_id');
  45. parent::addAttribute('nivel_ensino_origem_aluno_id');
  46. parent::addAttribute('situacao_ingresso_id');
  47. parent::addAttribute('educacao_especial_id');
  48. parent::addAttribute('tipo_sanguineo');
  49. parent::addAttribute('necessidades_especiais_id');
  50. parent::addAttribute('problemas_alergicos');
  51. parent::addAttribute('descricao_alergia');
  52. parent::addAttribute('outros');
  53. }
  54. /**
  55. * Method set_serie
  56. * Sample of usage: $aluno->serie = $object;
  57. * @param $object Instance of Serie
  58. */
  59. public function set_serie(Serie $object)
  60. {
  61. $this->serie = $object;
  62. $this->serie_id = $object->id;
  63. }
  64. /**
  65. * Method get_serie
  66. * Sample of usage: $aluno->serie->attribute;
  67. * @returns Serie instance
  68. */
  69. public function get_serie()
  70. {
  71. // loads the associated object
  72. if (empty($this->serie))
  73. $this->serie = new Serie($this->serie_id);
  74. // returns the associated object
  75. return $this->serie;
  76. }
  77. /**
  78. * Method set_municipio
  79. * Sample of usage: $aluno->municipio = $object;
  80. * @param $object Instance of Municipio
  81. */
  82. public function set_municipio(Municipio $object)
  83. {
  84. $this->municipio = $object;
  85. $this->municipio_id = $object->id;
  86. }
  87. /**
  88. * Method get_municipio
  89. * Sample of usage: $aluno->municipio->attribute;
  90. * @returns Municipio instance
  91. */
  92. public function get_municipio()
  93. {
  94. // loads the associated object
  95. if (empty($this->municipio))
  96. $this->municipio = new Municipio($this->municipio_id);
  97. // returns the associated object
  98. return $this->municipio;
  99. }
  100. /**
  101. * Method set_rede_origem_aluno
  102. * Sample of usage: $aluno->rede_origem_aluno = $object;
  103. * @param $object Instance of RedeOrigemAluno
  104. */
  105. public function set_rede_origem_aluno(RedeOrigemAluno $object)
  106. {
  107. $this->rede_origem_aluno = $object;
  108. $this->rede_origem_aluno_id = $object->id;
  109. }
  110. /**
  111. * Method get_rede_origem_aluno
  112. * Sample of usage: $aluno->rede_origem_aluno->attribute;
  113. * @returns RedeOrigemAluno instance
  114. */
  115. public function get_rede_origem_aluno()
  116. {
  117. // loads the associated object
  118. if (empty($this->rede_origem_aluno))
  119. $this->rede_origem_aluno = new RedeOrigemAluno($this->rede_origem_aluno_id);
  120. // returns the associated object
  121. return $this->rede_origem_aluno;
  122. }
  123. /**
  124. * Method set_estado
  125. * Sample of usage: $aluno->estado = $object;
  126. * @param $object Instance of Estado
  127. */
  128. public function set_estado(Estado $object)
  129. {
  130. $this->estado = $object;
  131. $this->estado_id = $object->id;
  132. }
  133. /**
  134. * Method get_estado
  135. * Sample of usage: $aluno->estado->attribute;
  136. * @returns Estado instance
  137. */
  138. public function get_estado()
  139. {
  140. // loads the associated object
  141. if (empty($this->estado))
  142. $this->estado = new Estado($this->estado_id);
  143. // returns the associated object
  144. return $this->estado;
  145. }
  146. /**
  147. * Method set_situacao_ingresso
  148. * Sample of usage: $aluno->situacao_ingresso = $object;
  149. * @param $object Instance of SituacaoIngresso
  150. */
  151. public function set_situacao_ingresso(SituacaoIngresso $object)
  152. {
  153. $this->situacao_ingresso = $object;
  154. $this->situacao_ingresso_id = $object->id;
  155. }
  156. /**
  157. * Method get_situacao_ingresso
  158. * Sample of usage: $aluno->situacao_ingresso->attribute;
  159. * @returns SituacaoIngresso instance
  160. */
  161. public function get_situacao_ingresso()
  162. {
  163. // loads the associated object
  164. if (empty($this->situacao_ingresso))
  165. $this->situacao_ingresso = new SituacaoIngresso($this->situacao_ingresso_id);
  166. // returns the associated object
  167. return $this->situacao_ingresso;
  168. }
  169. /**
  170. * Method set_local_origem_aluno
  171. * Sample of usage: $aluno->local_origem_aluno = $object;
  172. * @param $object Instance of LocalOrigemAluno
  173. */
  174. public function set_local_origem_aluno(LocalOrigemAluno $object)
  175. {
  176. $this->local_origem_aluno = $object;
  177. $this->local_origem_aluno_id = $object->id;
  178. }
  179. /**
  180. * Method get_local_origem_aluno
  181. * Sample of usage: $aluno->local_origem_aluno->attribute;
  182. * @returns LocalOrigemAluno instance
  183. */
  184. public function get_local_origem_aluno()
  185. {
  186. // loads the associated object
  187. if (empty($this->local_origem_aluno))
  188. $this->local_origem_aluno = new LocalOrigemAluno($this->local_origem_aluno_id);
  189. // returns the associated object
  190. return $this->local_origem_aluno;
  191. }
  192. /**
  193. * Method set_frequencia_ano_anterior
  194. * Sample of usage: $aluno->frequencia_ano_anterior = $object;
  195. * @param $object Instance of FrequenciaAnoAnterior
  196. */
  197. public function set_frequencia_ano_anterior(FrequenciaAnoAnterior $object)
  198. {
  199. $this->frequencia_ano_anterior = $object;
  200. $this->frequencia_ano_anterior_id = $object->id;
  201. }
  202. /**
  203. * Method get_frequencia_ano_anterior
  204. * Sample of usage: $aluno->frequencia_ano_anterior->attribute;
  205. * @returns FrequenciaAnoAnterior instance
  206. */
  207. public function get_frequencia_ano_anterior()
  208. {
  209. // loads the associated object
  210. if (empty($this->frequencia_ano_anterior))
  211. $this->frequencia_ano_anterior = new FrequenciaAnoAnterior($this->frequencia_ano_anterior_id);
  212. // returns the associated object
  213. return $this->frequencia_ano_anterior;
  214. }
  215. /**
  216. * Method set_nivel_ensino_origem_aluno
  217. * Sample of usage: $aluno->nivel_ensino_origem_aluno = $object;
  218. * @param $object Instance of NivelEnsinoOrigemAluno
  219. */
  220. public function set_nivel_ensino_origem_aluno(NivelEnsinoOrigemAluno $object)
  221. {
  222. $this->nivel_ensino_origem_aluno = $object;
  223. $this->nivel_ensino_origem_aluno_id = $object->id;
  224. }
  225. /**
  226. * Method get_nivel_ensino_origem_aluno
  227. * Sample of usage: $aluno->nivel_ensino_origem_aluno->attribute;
  228. * @returns NivelEnsinoOrigemAluno instance
  229. */
  230. public function get_nivel_ensino_origem_aluno()
  231. {
  232. // loads the associated object
  233. if (empty($this->nivel_ensino_origem_aluno))
  234. $this->nivel_ensino_origem_aluno = new NivelEnsinoOrigemAluno($this->nivel_ensino_origem_aluno_id);
  235. // returns the associated object
  236. return $this->nivel_ensino_origem_aluno;
  237. }
  238. /**
  239. * Method set_educacao_especial
  240. * Sample of usage: $aluno->educacao_especial = $object;
  241. * @param $object Instance of EducacaoEspecial
  242. */
  243. public function set_educacao_especial(EducacaoEspecial $object)
  244. {
  245. $this->educacao_especial = $object;
  246. $this->educacao_especial_id = $object->id;
  247. }
  248. /**
  249. * Method get_educacao_especial
  250. * Sample of usage: $aluno->educacao_especial->attribute;
  251. * @returns EducacaoEspecial instance
  252. */
  253. public function get_educacao_especial()
  254. {
  255. // loads the associated object
  256. if (empty($this->educacao_especial))
  257. $this->educacao_especial = new EducacaoEspecial($this->educacao_especial_id);
  258. // returns the associated object
  259. return $this->educacao_especial;
  260. }
  261. /**
  262. * Method set_necessidades_especiais
  263. * Sample of usage: $aluno->necessidades_especiais = $object;
  264. * @param $object Instance of NecessidadesEspeciais
  265. */
  266. public function set_necessidades_especiais(NecessidadesEspeciais $object)
  267. {
  268. $this->necessidades_especiais = $object;
  269. $this->necessidades_especiais_id = $object->id;
  270. }
  271. /**
  272. * Method get_necessidades_especiais
  273. * Sample of usage: $aluno->necessidades_especiais->attribute;
  274. * @returns NecessidadesEspeciais instance
  275. */
  276. public function get_necessidades_especiais()
  277. {
  278. // loads the associated object
  279. if (empty($this->necessidades_especiais))
  280. $this->necessidades_especiais = new NecessidadesEspeciais($this->necessidades_especiais_id);
  281. // returns the associated object
  282. return $this->necessidades_especiais;
  283. }
  284. }
  285. ?>

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (0)