Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Tratar retorno vazios Ola, Estou tendo dificuldade em tratar retornos em que a coluna no banco é null ou ' ',. Como resolver. Trecho em que ocorre o erro ...
RB
Tratar retorno vazios  
Ola,

Estou tendo dificuldade em tratar retornos em que a coluna no banco é null ou ' ',.

Como resolver.

Trecho em que ocorre o erro
  1. <?php
  2. ....
  3. $email              = new TDataGridColumn('cliente->fisica->contatoweb->email','E-mail','left');
  4. $site               = new TDataGridColumn('cliente->fisica->contatoweb->site','Site','left');
  5. $email->setTransformer( function($value$object$row) {
  6.             switch ($value) {
  7.                 case !empty($value):
  8.                      return $value;
  9.                     break;
  10.                 
  11.                 default:
  12.                     return '---';
  13.                     
  14.                     break;
  15.             }
  16.         });
  17. ?>

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (3)


IF

Rubens, acho que há algum problema no seu model, pela mensagem na tela, o Adianti não está encontrando a propriedade do objeto. Posta o seu model pra gente dar uma olhada
RB

Ivan, bom dia,

Segue
Pessoa

  1. <?php
  2. /**
  3.  * Pessoa Active Record
  4.  * @author  <your-name-here>
  5.  */
  6. class Pessoa extends TRecord
  7. {
  8.     const TABLENAME 'pessoa';
  9.     const PRIMARYKEY'id';
  10.     const IDPOLICY =  'serial'// {max, serial}
  11.     
  12.     protected $contato;
  13.     protected $contatoweb;
  14.     
  15.     /**
  16.      * Constructor method
  17.      */
  18.     public function __construct($id NULL$callObjectLoad TRUE)
  19.     {
  20.         parent::__construct($id$callObjectLoad);
  21.         parent::addAttribute('nome');
  22.         parent::addAttribute('data_nascimento');
  23.         parent::addAttribute('organizacao_id');
  24.         parent::addAttribute('criacao');
  25.         parent::addAttribute('atualizacao');
  26.         parent::addAttribute('ativo');
  27.         parent::addAttribute('tipo_pessoa_id');
  28.     }
  29.     public function get_contato()
  30.     {
  31.         // loads the associated object
  32.         if (empty($this->contato))
  33.             try
  34.             {
  35.                 TTransaction::open('teste');
  36.                 $criteria = new TCriteria;
  37.                 $criteria->add( new TFilter'pessoa_id''='$this->id ));
  38.                             
  39.                 $contatos Contato::getObjects($criteria);
  40.                 
  41.                 foreach ($contatos as $contato)
  42.                 {
  43.                     $this->contato $contato;
  44.                 }
  45.                 TTransaction::close();
  46.             }
  47.             catch (Exception $e)
  48.             {
  49.                 new TMessage('error'$e->getMessage());
  50.             }
  51.     
  52.         // returns the associated object
  53.         return $this->contato;
  54.     }
  55.     
  56.     public function getContatoWeb()
  57.     {
  58.         $criteria = new TCriteria;
  59.         $criteria->add(new TFilter('pessoa_id''='$this->id));
  60.         $this->pessoa ContatoWeb::getObjects$criteria );
  61.         return $this->pessoa;
  62.     }
  63. }
  64. ?>


Fisica
  1. <?php
  2. /**
  3.  * Fisica Active Record
  4.  * @author  <your-name-here>
  5.  */
  6. class Fisica extends TRecord
  7. {
  8.     const TABLENAME 'fisica';
  9.     const PRIMARYKEY'id';
  10.     const IDPOLICY =  'serial'// {max, serial}
  11.     
  12.     
  13.     private $pessoa;
  14.     private $civil;
  15.     private $etnia;
  16.     private $cliente;
  17.     private $contato;
  18.     private $contatoweb;
  19.     /**
  20.      * Constructor method
  21.      */
  22.     public function __construct($id NULL$callObjectLoad TRUE)
  23.     {
  24.         parent::__construct($id$callObjectLoad);
  25.         parent::addAttribute('pessoa_id');
  26.         parent::addAttribute('cpf');
  27.         parent::addAttribute('rg');
  28.         parent::addAttribute('genero_id');
  29.         parent::addAttribute('civil_id');
  30.         parent::addAttribute('cnh');
  31.         parent::addAttribute('criacao');
  32.         parent::addAttribute('atualizacao');
  33.         parent::addAttribute('organizacao_id');
  34.         parent::addAttribute('etnia_id');
  35.     }
  36.     
  37.     /**
  38.      * Method set_pessoa
  39.      * Sample of usage: $fisica->pessoa = $object;
  40.      * @param $object Instance of Pessoa
  41.      */
  42.     public function set_pessoa(Pessoa $object)
  43.     {
  44.         $this->pessoa $object;
  45.         $this->pessoa_id $object->id;
  46.     }
  47.     
  48.     /**
  49.      * Method get_pessoa
  50.      * Sample of usage: $fisica->pessoa->attribute;
  51.      * @returns Pessoa instance
  52.      */
  53.     public function get_pessoa()
  54.     {
  55.         // loads the associated object
  56.         if (empty($this->pessoa))
  57.             $this->pessoa = new Pessoa($this->pessoa_id);
  58.     
  59.         // returns the associated object
  60.         return $this->pessoa;
  61.     }
  62.     
  63.     
  64.     /**
  65.      * Method set_civil
  66.      * Sample of usage: $fisica->civil = $object;
  67.      * @param $object Instance of Civil
  68.      */
  69.     public function set_civil(Civil $object)
  70.     {
  71.         $this->civil $object;
  72.         $this->civil_id $object->id;
  73.     }
  74.     
  75.     /**
  76.      * Method get_civil
  77.      * Sample of usage: $fisica->civil->attribute;
  78.      * @returns Civil instance
  79.      */
  80.     public function get_civil()
  81.     {
  82.         // loads the associated object
  83.         if (empty($this->civil))
  84.             $this->civil = new Civil($this->civil_id);
  85.     
  86.         // returns the associated object
  87.         return $this->civil;
  88.     }
  89.     
  90.     
  91.     /**
  92.      * Method set_etnia
  93.      * Sample of usage: $fisica->etnia = $object;
  94.      * @param $object Instance of Etnia
  95.      */
  96.     public function set_etnia(Etnia $object)
  97.     {
  98.         $this->etnia $object;
  99.         $this->etnia_id $object->id;
  100.     }
  101.     
  102.     /**
  103.      * Method get_etnia
  104.      * Sample of usage: $fisica->etnia->attribute;
  105.      * @returns Etnia instance
  106.      */
  107.     public function get_etnia()
  108.     {
  109.         // loads the associated object
  110.         if (empty($this->etnia))
  111.             $this->etnia = new Etnia($this->etnia_id);
  112.     
  113.         // returns the associated object
  114.         return $this->etnia;
  115.     }
  116.     
  117.     /**
  118.      * Method get_cliente
  119.      * Sample of usage: $fisica->cliente->attribute;
  120.      * @returns Cliente instance
  121.      */
  122.     public function get_cliente()
  123.     {
  124.         // loads the associated object
  125.         if (empty($this->cliente))
  126.             $this->cliente = new Cliente($this->pessoa_id);
  127.     
  128.         // returns the associated object
  129.         return $this->cliente;
  130.     }
  131.     
  132.     
  133.     /**
  134.      * Method get_contato
  135.      * Sample of usage: $fisica->contato->attribute;
  136.      * @returns Contato instance
  137.      */
  138.     public function get_contato()
  139.     {
  140.         // loads the associated object
  141.         if (empty($this->contato))
  142.             try
  143.             {
  144.                 TTransaction::open('teste');
  145.                 $criteria = new TCriteria;
  146.                 $criteria->add(new TFilter('pessoa_id''='$this->pessoa_id));
  147.                 
  148.                 $repository = new TRepository('Contato');
  149.                 $contatos $repository->load($criteria);
  150.                 foreach ($contatos as $object)
  151.                 {
  152.                     $this->contato $object;
  153.                     return $this->contato;
  154.                 }
  155.                 TTransaction::close();
  156.             }
  157.             catch (Exception $e)
  158.             {
  159.                 new TMessage('error'$e->getMessage());
  160.             }
  161.     
  162.         // returns the associated object
  163.         return $this->contato;
  164.     }
  165.     
  166.     public function getContatoWeb()
  167.     {
  168.         if (empty($this->contatoweb))
  169.         {
  170.             $criteria = new TCriteria;
  171.             $criteria->add(new TFilter('pessoa_id''='$this->pessoa_id));
  172.             $this->contatoweb ContatoWeb::getObjects$criteria );
  173.             return $this->contatoweb;
  174.         }
  175.         
  176.     }
  177. }
  178. ?>


ContatoWeb

  1. <?php
  2. /**
  3.  * Contatoweb Active Record
  4.  * @author  <your-name-here>
  5.  */
  6. class ContatoWeb extends TRecord
  7. {
  8.     const TABLENAME 'contatoweb';
  9.     const PRIMARYKEY'id';
  10.     const IDPOLICY =  'serial'// {max, serial}
  11.     
  12.     
  13.     private $pessoa;
  14.     private $cliente;
  15.     /**
  16.      * Constructor method
  17.      */
  18.     public function __construct($id NULL$callObjectLoad TRUE)
  19.     {
  20.         parent::__construct($id$callObjectLoad);
  21.         parent::addAttribute('pessoa_id');
  22.         parent::addAttribute('email');
  23.         parent::addAttribute('site');
  24.     }
  25.     
  26.     /**
  27.      * Method set_pessoa
  28.      * Sample of usage: $contatoweb->pessoa = $object;
  29.      * @param $object Instance of Pessoa
  30.      */
  31.     public function set_pessoa(Pessoa $object)
  32.     {
  33.         $this->pessoa $object;
  34.         $this->pessoa_id $object->id;
  35.     }
  36. /**
  37.      * Method get_pessoa
  38.      * Sample of usage: $contatoweb->pessoa->attribute;
  39.      * @returns Pessoa instance
  40.      */
  41.     public function get_pessoa()
  42.     {
  43.         // loads the associated object
  44.         if (empty($this->pessoa))
  45.             $this->pessoa = new Pessoa($this->pessoa_id);
  46.     
  47.         // returns the associated object
  48.         return $this->pessoa;
  49.     }
  50.     
  51.     /**
  52.      * Method get_cliente
  53.      * Sample of usage: $contatoweb->cliente->attribute;
  54.      * @returns Cliente instance
  55.      */
  56.     public function get_cliente()
  57.     {
  58.         // loads the associated object
  59.         if (empty($this->cliente))
  60.             $this->cliente = new Cliente($this->pessoa_id);
  61.     
  62.         // returns the associated object
  63.         return $this->cliente;
  64.     }   
  65. }
  66. ?>


IF

Vc está tentando exibir um array contatoweb numa coluna DataGrid, porisso que está ocorrendo erro! E quando vc usa relacionamentos, a tabela principal (clientes) não pode entrar no nome do campo da datagrid. ex:
o correto é:
<php
$site = new TDataGridColumn('fisica->contatoweb->site','Site','left');
?>