Mostrar campos de Tabela Auxiliar Tenho visto os exemplos do framework que no vídeo mostra um cadastro de clientes e pega o campo cidade e mostra no cadastro, segui o exemplo, mas comigo não está funcionado... não sei o que fazer..sou novo com esse framework e com o php.. agradeço desde ja a ajuda. segue a classe e os códigos em questão ...
M
Mostrar campos de Tabela Auxiliar  
Tenho visto os exemplos do framework que no vídeo mostra um cadastro de clientes e pega o campo cidade e mostra no cadastro, segui o exemplo, mas comigo não está funcionado... não sei o que fazer..sou novo com esse framework e com o php.. agradeço desde ja a ajuda.

segue a classe e os códigos em questão

 
  1. <?php
  2. /**
  3. * Local Active Record
  4. * @author <your-name-here>
  5. */
  6. class Local extends TRecord
  7. {
  8. const TABLENAME = '"public"."local"';
  9. const PRIMARYKEY= 'id';
  10. const IDPOLICY = 'max'; // {max, serial}
  11. private $midias;
  12. private $parcerias;
  13. private $proprietario;
  14. private $regiao;
  15. /**
  16. * Constructor method
  17. */
  18. public function __construct($id = NULL, $callObjectLoad = TRUE)
  19. {
  20. parent::__construct($id, $callObjectLoad);
  21. parent::addAttribute('empresa');
  22. parent::addAttribute('id_proprietario');
  23. parent::addAttribute('id_midia');
  24. parent::addAttribute('id_parceria');
  25. parent::addAttribute('id_regiao');
  26. parent::addAttribute('descricao');
  27. parent::addAttribute('data_final');
  28. parent::addAttribute('data_instalacao');
  29. parent::addAttribute('valor_custo');
  30. parent::addAttribute('setor');
  31. parent::addAttribute('bairro');
  32. parent::addAttribute('latitude');
  33. parent::addAttribute('logitude');
  34. parent::addAttribute('local_iluminado');
  35. parent::addAttribute('local_nobre');
  36. parent::addAttribute('status');
  37. parent::addAttribute('restricoes');
  38. parent::addAttribute('marcar');
  39. parent::addAttribute('parceria_marca');
  40. parent::addAttribute('caminho_imagem');
  41. parent::addAttribute('usuario');
  42. parent::addAttribute('apagado');
  43. parent::addAttribute('upd_ctrl');
  44. }
  45. /**
  46. * Method set_midias
  47. * Sample of usage: $local->midias = $object;
  48. * @param $object Instance of Midias
  49. */
  50. public function set_midias(Midias $object)
  51. {
  52. $this->midias = $object;
  53. $this->midias_id = $object->id;
  54. }
  55. /**
  56. * Method get_midias
  57. * Sample of usage: $local->midias->attribute;
  58. * @returns Midias instance
  59. */
  60. public function get_midias()
  61. {
  62. // loads the associated object
  63. if (empty($this->midias))
  64. $this->midias = new Midias($this->midias_id);
  65. // returns the associated object
  66. return $this->midias;
  67. }
  68. /**
  69. * Method set_parcerias
  70. * Sample of usage: $local->parcerias = $object;
  71. * @param $object Instance of Parcerias
  72. */
  73. public function set_parcerias(Parcerias $object)
  74. {
  75. $this->parcerias = $object;
  76. $this->parcerias_id = $object->id;
  77. }
  78. /**
  79. * Method get_parcerias
  80. * Sample of usage: $local->parcerias->attribute;
  81. * @returns Parcerias instance
  82. */
  83. public function get_parcerias()
  84. {
  85. // loads the associated object
  86. if (empty($this->parcerias))
  87. $this->parcerias = new Parcerias($this->parcerias_id);
  88. // returns the associated object
  89. return $this->parcerias;
  90. }
  91. /**
  92. * Method set_proprietario
  93. * Sample of usage: $local->proprietario = $object;
  94. * @param $object Instance of Proprietario
  95. */
  96. public function set_proprietario(Proprietario $object)
  97. {
  98. $this->proprietario = $object;
  99. $this->proprietario_id = $object->id;
  100. }
  101. /**
  102. * Method get_proprietario
  103. * Sample of usage: $local->proprietario->attribute;
  104. * @returns Proprietario instance
  105. */
  106. public function get_proprietario()
  107. {
  108. // loads the associated object
  109. if (empty($this->proprietario))
  110. $this->proprietario = new Proprietario($this->proprietario_id);
  111. // returns the associated object
  112. return $this->proprietario;
  113. }
  114. /**
  115. * Method set_regiao
  116. * Sample of usage: $local->regiao = $object;
  117. * @param $object Instance of regiao
  118. */
  119. public function set_regiao(regiao $object)
  120. {
  121. $this->regiao = $object;
  122. $this->regiao_id = $object->id;
  123. }
  124. /**
  125. * Method get_regiao
  126. * Sample of usage: $local->regiao->attribute;
  127. * @returns regiao instance
  128. */
  129. public function get_regiao()
  130. {
  131. // loads the associated object
  132. if (empty($this->regiao))
  133. $this->regiao = new regiao($this->regiao_id);
  134. // returns the associated object
  135. return $this->regiao;
  136. }
  137. }
  138. -------------------------------------------------------------------
 
  1. <?php
  2. /**
  3. * LocalList Listing
  4. * @author <your name here>
  5. */
  6. class LocalList extends TPage
  7. {
  8. protected $form; // registration form
  9. protected $datagrid; // listing
  10. protected $pageNavigation;
  11. protected $formgrid;
  12. protected $deleteButton;
  13. use Adianti\base\AdiantiStandardListTrait;
  14. /**
  15. * Page constructor
  16. */
  17. public function __construct()
  18. {
  19. parent::__construct();
  20. $this->setDatabase('painel'); // defines the database
  21. $this->setActiveRecord('Local'); // defines the active record
  22. $this->setDefaultOrder('bairro,setor,descricao', 'asc'); // defines the default order
  23. $this->setLimit(10);
  24. // $this->setCriteria($criteria) // define a standard filter
  25. $this->addFilterField('id', '=', 'id'); // filterField, operator, formField
  26. $this->addFilterField('empresa', 'like', 'empresa'); // filterField, operator, formField
  27. $this->addFilterField('id_proprietario', '=', 'id_proprietario'); // filterField, operator, formField
  28. $this->addFilterField('id_midia', 'like', 'id_midia'); // filterField, operator, formField
  29. $this->addFilterField('id_parceria', 'like', 'id_parceria'); // filterField, operator, formField
  30. $this->addFilterField('id_regiao', 'like', 'id_regiao'); // filterField, operator, formField
  31. $this->addFilterField('descricao', 'like', 'descricao'); // filterField, operator, formField
  32. $this->addFilterField('data_final', 'like', 'data_final'); // filterField, operator, formField
  33. $this->addFilterField('data_instalacao', 'like', 'data_instalacao'); // filterField, operator, formField
  34. $this->addFilterField('valor_custo', 'like', 'valor_custo'); // filterField, operator, formField
  35. $this->addFilterField('setor', 'like', 'setor'); // filterField, operator, formField
  36. $this->addFilterField('bairro', 'like', 'bairro'); // filterField, operator, formField
  37. $this->addFilterField('latitude', 'like', 'latitude'); // filterField, operator, formField
  38. $this->addFilterField('logitude', 'like', 'logitude'); // filterField, operator, formField
  39. $this->addFilterField('local_iluminado', 'like', 'local_iluminado'); // filterField, operator, formField
  40. $this->addFilterField('local_nobre', 'like', 'local_nobre'); // filterField, operator, formField
  41. $this->addFilterField('status', 'like', 'status'); // filterField, operator, formField
  42. $this->addFilterField('restricoes', 'like', 'restricoes'); // filterField, operator, formField
  43. $this->addFilterField('marcar', 'like', 'marcar'); // filterField, operator, formField
  44. $this->addFilterField('parceria_marca', 'like', 'parceria_marca'); // filterField, operator, formField
  45. $this->addFilterField('caminho_imagem', 'like', 'caminho_imagem'); // filterField, operator, formField
  46. $this->addFilterField('usuario', 'like', 'usuario'); // filterField, operator, formField
  47. $this->addFilterField('apagado', 'like', 'apagado'); // filterField, operator, formField
  48. $this->addFilterField('upd_ctrl', 'like', 'upd_ctrl'); // filterField, operator, formField
  49. // creates the form
  50. $this->form = new BootstrapFormBuilder('form_search_Local');
  51. $this->form->setFormTitle('Pesquisa Local/Tabuleta');
  52. $this->form->appendPage('Básico');
  53. $this->form->setFieldSizes('100%');
  54. // create the form fields
  55. $id = new TEntry('id');
  56. $empresa = new TEntry('empresa');
  57. $id_proprietario = new TDBUniqueSearch('id_proprietario', 'painel', 'Proprietario', 'id', 'razao_social');
  58. $id_midia = new TEntry('id_midia');
  59. $id_parceria = new TEntry('id_parceria');
  60. $id_regiao = new TEntry('id_regiao');
  61. $descricao = new TEntry('Local');
  62. $data_final = new TEntry('data_final');
  63. $data_instalacao = new TEntry('data_instalacao');
  64. $valor_custo = new TEntry('valor_custo');
  65. $setor = new TEntry('setor');
  66. $bairro = new TEntry('bairro');
  67. $latitude = new TEntry('latitude');
  68. $logitude = new TEntry('logitude');
  69. $local_iluminado = new TEntry('local_iluminado');
  70. $local_nobre = new TEntry('local_nobre');
  71. $status = new TEntry('status');
  72. $restricoes = new TEntry('restricoes');
  73. $marcar = new TEntry('marcar');
  74. $parceria_marca = new TEntry('parceria_marca');
  75. $caminho_imagem = new TEntry('caminho_imagem');
  76. $usuario = new TEntry('usuario');
  77. $apagado = new TEntry('apagado');
  78. $upd_ctrl = new TEntry('upd_ctrl');
  79. // create the form fields
  80. $setor = new TEntry('setor');
  81. $status = new TCombo('status');
  82. $descricao = new TEntry('descricao');
  83. $bairro = new TEntry('bairro');
  84. // add the fields
  85. $row = $this->form->addFields( [ new TLabel('Setor'), $setor ],
  86. [ new TLabel('Status'), $status ],
  87. [ new TLabel('Local/Tabuleta'), $descricao ]);
  88. $row->layout = ['col-sm-1', 'col-sm-2', 'col-sm-8'];
  89. $row = $this->form->addFields( [ new TLabel('Bairro'), $bairro ]);
  90. $row->layout = ['col-sm-4'];
  91. // keep the form filled during navigation with session data
  92. $this->form->setData( TSession::getValue(__CLASS__.'_filter_data') );
  93. // add the search form actions
  94. $btn = $this->form->addAction(_t('Find'), new TAction([$this, 'onSearch']), 'fa:search');
  95. $btn->class = 'btn btn-sm btn-primary';
  96. $this->form->addActionLink(_t('New'), new TAction(['LocalForm', 'onEdit']), 'fa:plus green');
  97. // creates a Datagrid
  98. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  99. $this->datagrid->style = 'width: 100%';
  100. $this->datagrid->datatable = 'true';
  101. //$this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
  102. $status->addItems( [ 'V' => 'Ativo', 'F' => 'Inativo' ] );
  103. // creates the datagrid columns
  104. $column_id = new TDataGridColumn('id', 'Id', 'right');
  105. $column_empresa = new TDataGridColumn('empresa', 'Empresa', 'right');
  106. $column_id_proprietario = new TDataGridColumn('id_proprietario', 'Id Proprietario', 'right');
  107. $column_id_midia = new TDataGridColumn('{midias->descricao}', 'Midia', 'left');
  108. $column_id_parceria = new TDataGridColumn('id_parceria', 'Id Parceria', 'right');
  109. $column_id_regiao = new TDataGridColumn('id_regiao','Região', 'right');
  110. $column_descricao = new TDataGridColumn('descricao', 'Local/Tabuleta', 'left');
  111. $column_data_final = new TDataGridColumn('data_final', 'Data Final', 'left');
  112. $column_data_instalacao = new TDataGridColumn('data_instalacao', 'Data Instalacao', 'left');
  113. $column_valor_custo = new TDataGridColumn('valor_custo', 'Valor Custo', 'right');
  114. $column_setor = new TDataGridColumn('setor', 'Setor', 'center');
  115. $column_bairro = new TDataGridColumn('bairro', 'Bairro', 'left');
  116. $column_latitude = new TDataGridColumn('latitude', 'Latitude', 'left');
  117. $column_logitude = new TDataGridColumn('logitude', 'Logitude', 'left');
  118. $column_local_iluminado = new TDataGridColumn('local_iluminado', 'Local Iluminado', 'left');
  119. $column_local_nobre = new TDataGridColumn('local_nobre', 'Local Nobre', 'left');
  120. $column_status = new TDataGridColumn('status', 'Status', 'center');
  121. $column_restricoes = new TDataGridColumn('restricoes', 'Restricoes', 'left');
  122. $column_marcar = new TDataGridColumn('marcar', 'Marcar', 'left');
  123. $column_parceria_marca = new TDataGridColumn('parceria_marca', 'Parceria Marca', 'left');
  124. $column_caminho_imagem = new TDataGridColumn('caminho_imagem', 'Caminho Imagem', 'left');
  125. $column_usuario = new TDataGridColumn('usuario', 'Usuario', 'left');
  126. $column_apagado = new TDataGridColumn('apagado', 'Apagado', 'left');
  127. $column_upd_ctrl = new TDataGridColumn('upd_ctrl', 'Upd Ctrl', 'left');
  128. $column_status->setTransformer( function ($value) {
  129. return $value == 'V' ? 'Ativo' : 'Inativo';
  130. });
  131. $this->datagrid->addColumn($column_id);
  132. $this->datagrid->addColumn($column_status);
  133. $this->datagrid->addColumn($column_setor);
  134. $this->datagrid->addColumn($column_descricao);
  135. $this->datagrid->addColumn($column_bairro);
  136. $this->datagrid->addColumn($column_id_midia);
  137. $action1 = new TDataGridAction(['LocalForm', 'onEdit'], ['id'=>'{id}']);
  138. $action2 = new TDataGridAction([$this, 'onDelete'], ['id'=>'{id}']);
  139. $this->datagrid->addAction($action1, _t('Edit'), 'far:edit blue');
  140. $this->datagrid->addAction($action2 ,_t('Delete'), 'far:trash-alt red');
  141. // create the datagrid model
  142. $this->datagrid->createModel();
  143. // creates the page navigation
  144. $this->pageNavigation = new TPageNavigation;
  145. $this->pageNavigation->setAction(new TAction([$this, 'onReload']));
  146. $panel = new TPanelGroup('Listagem de Local/Tabuleta', 'white');
  147. $panel->add($this->datagrid);
  148. $this->pageNavigation->enableCounters();
  149. $panel->addFooter($this->pageNavigation);
  150. // header actions
  151. $dropdown = new TDropDown(_t('Export'), 'fa:list');
  152. $dropdown->setPullSide('right');
  153. $dropdown->setButtonClass('btn btn-default waves-effect dropdown-toggle');
  154. $dropdown->addAction( _t('Save as CSV'), new TAction([$this, 'onExportCSV'], ['register_state' => 'false', 'static'=>'1']), 'fa:table blue' );
  155. $dropdown->addAction( _t('Save as PDF'), new TAction([$this, 'onExportPDF'], ['register_state' => 'false', 'static'=>'1']), 'far:file-pdf red' );
  156. $panel->addHeaderWidget( $dropdown );
  157. // vertical box container
  158. $container = new TVBox;
  159. $container->style = 'width: 100%';
  160. $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  161. $container->add($this->form);
  162. $container->add($panel);
  163. parent::add($container);
  164. }
  165. }

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 (3)


LC

Retire as chaves de {midias->descricao}
Deixa só midias->descricao
NR

No model Local o nome da coluna é "id_midia", mas na função get_midias você usa "midias_id".
 
  1. <?php
  2. // construct
  3. parent::addAttribute('id_midia');
  4. public function get_midias()
  5. {
  6. // loads the associated object
  7. if (empty($this->midias))
  8. //$this->midias = new Midias($this->midias_id);
  9. $this->midias = new Midias($this->id_midia);
  10. // returns the associated object
  11. return $this->midias;
  12. }
  13. ?>
M

Obrigado Nataniel Rabaioli, funcionou....
Leandro Coelho, obrigado pelo esforço de me ajudar, grato aos dois.