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
segue a classe e os códigos em questão
- <?php
- /**
- * Local Active Record
- * @author <your-name-here>
- */
- class Local extends TRecord
- {
- const TABLENAME = '"public"."local"';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'max'; // {max, serial}
-
-
- private $midias;
- private $parcerias;
- private $proprietario;
- private $regiao;
- /**
- * Constructor method
- */
- public function __construct($id = NULL, $callObjectLoad = TRUE)
- {
- parent::__construct($id, $callObjectLoad);
- parent::addAttribute('empresa');
- parent::addAttribute('id_proprietario');
- parent::addAttribute('id_midia');
- parent::addAttribute('id_parceria');
- parent::addAttribute('id_regiao');
- parent::addAttribute('descricao');
- parent::addAttribute('data_final');
- parent::addAttribute('data_instalacao');
- parent::addAttribute('valor_custo');
- parent::addAttribute('setor');
- parent::addAttribute('bairro');
- parent::addAttribute('latitude');
- parent::addAttribute('logitude');
- parent::addAttribute('local_iluminado');
- parent::addAttribute('local_nobre');
- parent::addAttribute('status');
- parent::addAttribute('restricoes');
- parent::addAttribute('marcar');
- parent::addAttribute('parceria_marca');
- parent::addAttribute('caminho_imagem');
- parent::addAttribute('usuario');
- parent::addAttribute('apagado');
- parent::addAttribute('upd_ctrl');
- }
-
- /**
- * Method set_midias
- * Sample of usage: $local->midias = $object;
- * @param $object Instance of Midias
- */
- public function set_midias(Midias $object)
- {
- $this->midias = $object;
- $this->midias_id = $object->id;
- }
-
- /**
- * Method get_midias
- * Sample of usage: $local->midias->attribute;
- * @returns Midias instance
- */
- public function get_midias()
- {
- // loads the associated object
- if (empty($this->midias))
- $this->midias = new Midias($this->midias_id);
-
- // returns the associated object
- return $this->midias;
- }
-
-
- /**
- * Method set_parcerias
- * Sample of usage: $local->parcerias = $object;
- * @param $object Instance of Parcerias
- */
- public function set_parcerias(Parcerias $object)
- {
- $this->parcerias = $object;
- $this->parcerias_id = $object->id;
- }
-
- /**
- * Method get_parcerias
- * Sample of usage: $local->parcerias->attribute;
- * @returns Parcerias instance
- */
- public function get_parcerias()
- {
- // loads the associated object
- if (empty($this->parcerias))
- $this->parcerias = new Parcerias($this->parcerias_id);
-
- // returns the associated object
- return $this->parcerias;
- }
-
-
- /**
- * Method set_proprietario
- * Sample of usage: $local->proprietario = $object;
- * @param $object Instance of Proprietario
- */
- public function set_proprietario(Proprietario $object)
- {
- $this->proprietario = $object;
- $this->proprietario_id = $object->id;
- }
-
- /**
- * Method get_proprietario
- * Sample of usage: $local->proprietario->attribute;
- * @returns Proprietario instance
- */
- public function get_proprietario()
- {
- // loads the associated object
- if (empty($this->proprietario))
- $this->proprietario = new Proprietario($this->proprietario_id);
-
- // returns the associated object
- return $this->proprietario;
- }
-
-
- /**
- * Method set_regiao
- * Sample of usage: $local->regiao = $object;
- * @param $object Instance of regiao
- */
- public function set_regiao(regiao $object)
- {
- $this->regiao = $object;
- $this->regiao_id = $object->id;
- }
-
- /**
- * Method get_regiao
- * Sample of usage: $local->regiao->attribute;
- * @returns regiao instance
- */
- public function get_regiao()
- {
- // loads the associated object
- if (empty($this->regiao))
- $this->regiao = new regiao($this->regiao_id);
-
- // returns the associated object
- return $this->regiao;
- }
- }
- -------------------------------------------------------------------
- <?php
- /**
- * LocalList Listing
- * @author <your name here>
- */
- class LocalList extends TPage
- {
- protected $form; // registration form
- protected $datagrid; // listing
- protected $pageNavigation;
- protected $formgrid;
- protected $deleteButton;
-
- use Adianti\base\AdiantiStandardListTrait;
-
- /**
- * Page constructor
- */
- public function __construct()
- {
- parent::__construct();
-
- $this->setDatabase('painel'); // defines the database
- $this->setActiveRecord('Local'); // defines the active record
- $this->setDefaultOrder('bairro,setor,descricao', 'asc'); // defines the default order
- $this->setLimit(10);
- // $this->setCriteria($criteria) // define a standard filter
- $this->addFilterField('id', '=', 'id'); // filterField, operator, formField
- $this->addFilterField('empresa', 'like', 'empresa'); // filterField, operator, formField
- $this->addFilterField('id_proprietario', '=', 'id_proprietario'); // filterField, operator, formField
- $this->addFilterField('id_midia', 'like', 'id_midia'); // filterField, operator, formField
- $this->addFilterField('id_parceria', 'like', 'id_parceria'); // filterField, operator, formField
- $this->addFilterField('id_regiao', 'like', 'id_regiao'); // filterField, operator, formField
- $this->addFilterField('descricao', 'like', 'descricao'); // filterField, operator, formField
- $this->addFilterField('data_final', 'like', 'data_final'); // filterField, operator, formField
- $this->addFilterField('data_instalacao', 'like', 'data_instalacao'); // filterField, operator, formField
- $this->addFilterField('valor_custo', 'like', 'valor_custo'); // filterField, operator, formField
- $this->addFilterField('setor', 'like', 'setor'); // filterField, operator, formField
- $this->addFilterField('bairro', 'like', 'bairro'); // filterField, operator, formField
- $this->addFilterField('latitude', 'like', 'latitude'); // filterField, operator, formField
- $this->addFilterField('logitude', 'like', 'logitude'); // filterField, operator, formField
- $this->addFilterField('local_iluminado', 'like', 'local_iluminado'); // filterField, operator, formField
- $this->addFilterField('local_nobre', 'like', 'local_nobre'); // filterField, operator, formField
- $this->addFilterField('status', 'like', 'status'); // filterField, operator, formField
- $this->addFilterField('restricoes', 'like', 'restricoes'); // filterField, operator, formField
- $this->addFilterField('marcar', 'like', 'marcar'); // filterField, operator, formField
- $this->addFilterField('parceria_marca', 'like', 'parceria_marca'); // filterField, operator, formField
- $this->addFilterField('caminho_imagem', 'like', 'caminho_imagem'); // filterField, operator, formField
- $this->addFilterField('usuario', 'like', 'usuario'); // filterField, operator, formField
- $this->addFilterField('apagado', 'like', 'apagado'); // filterField, operator, formField
- $this->addFilterField('upd_ctrl', 'like', 'upd_ctrl'); // filterField, operator, formField
-
- // creates the form
- $this->form = new BootstrapFormBuilder('form_search_Local');
- $this->form->setFormTitle('Pesquisa Local/Tabuleta');
-
- $this->form->appendPage('Básico');
- $this->form->setFieldSizes('100%');
-
- // create the form fields
- $id = new TEntry('id');
- $empresa = new TEntry('empresa');
- $id_proprietario = new TDBUniqueSearch('id_proprietario', 'painel', 'Proprietario', 'id', 'razao_social');
- $id_midia = new TEntry('id_midia');
- $id_parceria = new TEntry('id_parceria');
- $id_regiao = new TEntry('id_regiao');
- $descricao = new TEntry('Local');
- $data_final = new TEntry('data_final');
- $data_instalacao = new TEntry('data_instalacao');
- $valor_custo = new TEntry('valor_custo');
- $setor = new TEntry('setor');
- $bairro = new TEntry('bairro');
- $latitude = new TEntry('latitude');
- $logitude = new TEntry('logitude');
- $local_iluminado = new TEntry('local_iluminado');
- $local_nobre = new TEntry('local_nobre');
- $status = new TEntry('status');
- $restricoes = new TEntry('restricoes');
- $marcar = new TEntry('marcar');
- $parceria_marca = new TEntry('parceria_marca');
- $caminho_imagem = new TEntry('caminho_imagem');
- $usuario = new TEntry('usuario');
- $apagado = new TEntry('apagado');
- $upd_ctrl = new TEntry('upd_ctrl');
- // create the form fields
- $setor = new TEntry('setor');
- $status = new TCombo('status');
- $descricao = new TEntry('descricao');
- $bairro = new TEntry('bairro');
- // add the fields
- $row = $this->form->addFields( [ new TLabel('Setor'), $setor ],
- [ new TLabel('Status'), $status ],
- [ new TLabel('Local/Tabuleta'), $descricao ]);
- $row->layout = ['col-sm-1', 'col-sm-2', 'col-sm-8'];
- $row = $this->form->addFields( [ new TLabel('Bairro'), $bairro ]);
- $row->layout = ['col-sm-4'];
-
-
- // keep the form filled during navigation with session data
- $this->form->setData( TSession::getValue(__CLASS__.'_filter_data') );
-
- // add the search form actions
- $btn = $this->form->addAction(_t('Find'), new TAction([$this, 'onSearch']), 'fa:search');
- $btn->class = 'btn btn-sm btn-primary';
- $this->form->addActionLink(_t('New'), new TAction(['LocalForm', 'onEdit']), 'fa:plus green');
-
- // creates a Datagrid
- $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
- $this->datagrid->style = 'width: 100%';
- $this->datagrid->datatable = 'true';
- //$this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>');
-
- $status->addItems( [ 'V' => 'Ativo', 'F' => 'Inativo' ] );
- // creates the datagrid columns
- $column_id = new TDataGridColumn('id', 'Id', 'right');
- $column_empresa = new TDataGridColumn('empresa', 'Empresa', 'right');
- $column_id_proprietario = new TDataGridColumn('id_proprietario', 'Id Proprietario', 'right');
- $column_id_midia = new TDataGridColumn('{midias->descricao}', 'Midia', 'left');
- $column_id_parceria = new TDataGridColumn('id_parceria', 'Id Parceria', 'right');
- $column_id_regiao = new TDataGridColumn('id_regiao','Região', 'right');
- $column_descricao = new TDataGridColumn('descricao', 'Local/Tabuleta', 'left');
- $column_data_final = new TDataGridColumn('data_final', 'Data Final', 'left');
- $column_data_instalacao = new TDataGridColumn('data_instalacao', 'Data Instalacao', 'left');
- $column_valor_custo = new TDataGridColumn('valor_custo', 'Valor Custo', 'right');
- $column_setor = new TDataGridColumn('setor', 'Setor', 'center');
- $column_bairro = new TDataGridColumn('bairro', 'Bairro', 'left');
- $column_latitude = new TDataGridColumn('latitude', 'Latitude', 'left');
- $column_logitude = new TDataGridColumn('logitude', 'Logitude', 'left');
- $column_local_iluminado = new TDataGridColumn('local_iluminado', 'Local Iluminado', 'left');
- $column_local_nobre = new TDataGridColumn('local_nobre', 'Local Nobre', 'left');
- $column_status = new TDataGridColumn('status', 'Status', 'center');
- $column_restricoes = new TDataGridColumn('restricoes', 'Restricoes', 'left');
- $column_marcar = new TDataGridColumn('marcar', 'Marcar', 'left');
- $column_parceria_marca = new TDataGridColumn('parceria_marca', 'Parceria Marca', 'left');
- $column_caminho_imagem = new TDataGridColumn('caminho_imagem', 'Caminho Imagem', 'left');
- $column_usuario = new TDataGridColumn('usuario', 'Usuario', 'left');
- $column_apagado = new TDataGridColumn('apagado', 'Apagado', 'left');
- $column_upd_ctrl = new TDataGridColumn('upd_ctrl', 'Upd Ctrl', 'left');
- $column_status->setTransformer( function ($value) {
- return $value == 'V' ? 'Ativo' : 'Inativo';
- });
-
- $this->datagrid->addColumn($column_id);
- $this->datagrid->addColumn($column_status);
- $this->datagrid->addColumn($column_setor);
- $this->datagrid->addColumn($column_descricao);
- $this->datagrid->addColumn($column_bairro);
- $this->datagrid->addColumn($column_id_midia);
-
- $action1 = new TDataGridAction(['LocalForm', 'onEdit'], ['id'=>'{id}']);
- $action2 = new TDataGridAction([$this, 'onDelete'], ['id'=>'{id}']);
-
- $this->datagrid->addAction($action1, _t('Edit'), 'far:edit blue');
- $this->datagrid->addAction($action2 ,_t('Delete'), 'far:trash-alt red');
-
- // create the datagrid model
- $this->datagrid->createModel();
-
- // creates the page navigation
- $this->pageNavigation = new TPageNavigation;
- $this->pageNavigation->setAction(new TAction([$this, 'onReload']));
-
- $panel = new TPanelGroup('Listagem de Local/Tabuleta', 'white');
- $panel->add($this->datagrid);
- $this->pageNavigation->enableCounters();
- $panel->addFooter($this->pageNavigation);
-
- // header actions
- $dropdown = new TDropDown(_t('Export'), 'fa:list');
- $dropdown->setPullSide('right');
- $dropdown->setButtonClass('btn btn-default waves-effect dropdown-toggle');
- $dropdown->addAction( _t('Save as CSV'), new TAction([$this, 'onExportCSV'], ['register_state' => 'false', 'static'=>'1']), 'fa:table blue' );
- $dropdown->addAction( _t('Save as PDF'), new TAction([$this, 'onExportPDF'], ['register_state' => 'false', 'static'=>'1']), 'far:file-pdf red' );
- $panel->addHeaderWidget( $dropdown );
-
- // vertical box container
- $container = new TVBox;
- $container->style = 'width: 100%';
- $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
- $container->add($this->form);
- $container->add($panel);
-
- parent::add($container);
- }
- }
Retire as chaves de {midias->descricao}
Deixa só midias->descricao
No model Local o nome da coluna é "id_midia", mas na função get_midias você usa "midias_id".
Obrigado Nataniel Rabaioli, funcionou....
Leandro Coelho, obrigado pelo esforço de me ajudar, grato aos dois.