PS
problemas no cadastro de imagens
o meu savefile() não está movendo o arquivo da pasta tmp para a files/image, e o enablePopover do datagrid mesmo com a imagem na pasta não carrega a mesma.
Fomulário:
estou fazendo algo errado?
- <?php
- class ProdutosList extends TStandardList
- {
- protected $form; // registration form
- protected $datagrid; // listing
- protected $pageNavigation;
- protected $formgrid;
- protected $deleteButton;
- protected $transformCallback;
-
- // trait with onReload, onSearch, onDelete...
- use Adianti\Base\AdiantiStandardListTrait;
- /**
- * Page constructor
- */
- public function __construct()
- {
- parent::__construct();
-
- parent::setDatabase('permission'); // defines the database
- parent::setActiveRecord('Produtos'); // defines the active record
- parent::setDefaultOrder('c_prod', 'asc'); // defines the default order
- parent::addFilterField('c_prod', '=', 'c_prod'); // filterField, operator, formField
- parent::addFilterField('descricao', 'like', 'descricao'); // filterField, operator, formField
-
- // creates the form
- $this->form = new BootstrapFormBuilder('form_search_Produtos');
- $this->form->setFormTitle(('Produtos'));
-
- // create the form fields
- $id = new TEntry('c_prod');
- $descricao = new TEntry('descricao');
-
- // add the fields
- $this->form->addFields( [new TLabel(('Cód. Produto'))], [$id] );
- $this->form->addFields( [new TLabel(('Descrição'))], [$descricao] );
-
- $id->setSize('10%');
- $descricao->setSize('70%');
-
- // keep the form filled during navigation with session data
- $this->form->setData( TSession::getValue('Produtos_filter_data') );
-
- // add the search form actions
- $this->form->addAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search');
- $this->form->addAction(_t('New'), new TAction(array('ProdutosForm', 'onEdit')), 'bs:plus-sign green');
-
- // creates a DataGrid
- $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
- $this->datagrid->datatable = 'true';
- $this->datagrid->style = 'width: 100%';
- $this->datagrid->setHeight(320);
- $this->datagrid->enablePopover('Foto', "<img style='max-height: 300px' src='{path}'>");
- ?>
Fomulário:
- <?php
- $photo_path = new TFile('path');
-
- $this->form->addFields( [new TLabel('Foto')], [$photo_path] );
- public function onSave()
- {
- try
- {
- TTransaction::open($this->database);
- $data = $this->form->getData();
- $object = new Produtos;
- $object->id = $data->id;
- $object->c_prod = $data->c_prod;
- $object->descricao = $data->descricao;
- $object->path = $data->path;
-
- // copy file to target folder
- $this->saveFile($object, $data, 'path', 'files/images');
- $object->operador = TSession::getValue('username');
- $object->empresa = TSession::getValue('emp');
- $object->filial = TSession::getValue('fil');
- date_default_timezone_set('America/Sao_Paulo');
- $object->data_alter = date('Y-m-d');
- $object->hora_alter = date('Hi');
- $object->store();
- $data->id = $object->id;
- $this->form->setData($data);
- $this->form->validate();
- TTransaction::close();
-
- new TMessage('info', AdiantiCoreTranslator::translate('Record saved'));
-
- return $object;
- }
- ?>
estou fazendo algo errado?
Depurando eu notei que o meu savefile não esta entrando no seguinte "IF"
dei um var_dump no $data->$input_name e ele só tras o 'path', então chega nullo no if abaixo, alguem consegue me ajudar?
Pra usar a função saveFile você precisa configurar o componente TFile da seguinte maneira: