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. ...
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.

 
  1. <?php
  2. class ProdutosList extends TStandardList
  3. {
  4. protected $form; // registration form
  5. protected $datagrid; // listing
  6. protected $pageNavigation;
  7. protected $formgrid;
  8. protected $deleteButton;
  9. protected $transformCallback;
  10. // trait with onReload, onSearch, onDelete...
  11. use Adianti\Base\AdiantiStandardListTrait;
  12. /**
  13. * Page constructor
  14. */
  15. public function __construct()
  16. {
  17. parent::__construct();
  18. parent::setDatabase('permission'); // defines the database
  19. parent::setActiveRecord('Produtos'); // defines the active record
  20. parent::setDefaultOrder('c_prod', 'asc'); // defines the default order
  21. parent::addFilterField('c_prod', '=', 'c_prod'); // filterField, operator, formField
  22. parent::addFilterField('descricao', 'like', 'descricao'); // filterField, operator, formField
  23. // creates the form
  24. $this->form = new BootstrapFormBuilder('form_search_Produtos');
  25. $this->form->setFormTitle(('Produtos'));
  26. // create the form fields
  27. $id = new TEntry('c_prod');
  28. $descricao = new TEntry('descricao');
  29. // add the fields
  30. $this->form->addFields( [new TLabel(('Cód. Produto'))], [$id] );
  31. $this->form->addFields( [new TLabel(('Descrição'))], [$descricao] );
  32. $id->setSize('10%');
  33. $descricao->setSize('70%');
  34. // keep the form filled during navigation with session data
  35. $this->form->setData( TSession::getValue('Produtos_filter_data') );
  36. // add the search form actions
  37. $this->form->addAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search');
  38. $this->form->addAction(_t('New'), new TAction(array('ProdutosForm', 'onEdit')), 'bs:plus-sign green');
  39. // creates a DataGrid
  40. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  41. $this->datagrid->datatable = 'true';
  42. $this->datagrid->style = 'width: 100%';
  43. $this->datagrid->setHeight(320);
  44. $this->datagrid->enablePopover('Foto', "<img style='max-height: 300px' src='{path}'>");
  45. ?>


Fomulário:
 
  1. <?php
  2. $photo_path = new TFile('path');
  3. $this->form->addFields( [new TLabel('Foto')], [$photo_path] );
  4. public function onSave()
  5. {
  6. try
  7. {
  8. TTransaction::open($this->database);
  9. $data = $this->form->getData();
  10. $object = new Produtos;
  11. $object->id = $data->id;
  12. $object->c_prod = $data->c_prod;
  13. $object->descricao = $data->descricao;
  14. $object->path = $data->path;
  15. // copy file to target folder
  16. $this->saveFile($object, $data, 'path', 'files/images');
  17. $object->operador = TSession::getValue('username');
  18. $object->empresa = TSession::getValue('emp');
  19. $object->filial = TSession::getValue('fil');
  20. date_default_timezone_set('America/Sao_Paulo');
  21. $object->data_alter = date('Y-m-d');
  22. $object->hora_alter = date('Hi');
  23. $object->store();
  24. $data->id = $object->id;
  25. $this->form->setData($data);
  26. $this->form->validate();
  27. TTransaction::close();
  28. new TMessage('info', AdiantiCoreTranslator::translate('Record saved'));
  29. return $object;
  30. }
  31. ?>


estou fazendo algo errado?

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


PS

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?
 
  1. <?php
  2. public function saveFile($object, $data, $input_name, $target_path)
  3. {
  4. $dados_file = json_decode(urldecode($data->$input_name));
  5. if (isset($dados_file->fileName))
  6. ?>


NR

Pra usar a função saveFile você precisa configurar o componente TFile da seguinte maneira:
 
  1. <?php
  2. $photo_path = new TFile('path');
  3. $photo_path->enableFileHandling();
  4. ?>