TemplateView Básico não está dando loop No livro do Adianti Framework no capítulo 4.9.2 (Template view básico), roda tudo, menos a parte do loop pra exibir os contatos... eu já revisei o código aqui e não achei o problema... podem me ajudar ? TEMPLATE(customer.html) Customer data ...
WG
TemplateView Básico não está dando loop  
Fechado
No livro do Adianti Framework no capítulo 4.9.2 (Template view básico), roda tudo, menos a parte do loop pra exibir os contatos... eu já revisei o código aqui e não achei o problema... podem me ajudar ?

TEMPLATE(customer.html)
<!--[main]--> <table class="customform" style="border: 1px solid #b7b7b7"> <tr> <td colspan="2" class="formtitle">Customer data</td> </tr> <tr> <td width="20%">Name</td> <td width="80%"><span class="formfield">{$name}</span></td> </tr> <tr> <td>Address</td> <td><span class="formfield">{$address}</span></td> </tr> <tr> <td colspan="2" align="center"> <a generator="adianti" href="index.php?class=CustomerFormView&method=onEdit&key=$code}"> Click here to edit the customer </a> <td> </tr> <!--[contacts]--> <tr> <td class="sectiontitle" colspan="2">Contacts</td> </tr> <tr bgcolor="#e0e0e0"> <td>Type</td> <td>Value</td> </tr> <!--[contacts-detail]--> <tr> <td>{$type}</td> <td>{$value}</td> </tr> <!--[/contacts-detail--> <!--[/contacts]--> </table> <!--[/main]-->


classe TemplateViewBasicView
 
  1. <?php
  2. class TemplateViewBasicView extends TPage
  3. {
  4. function __construct()
  5. {
  6. parent::__construct();
  7. // carrega os estilos
  8. TPage::include_css('app/resources/styles.css');
  9. // carrega o template
  10. $this->html = new THtmlRenderer('app/resources/customer.html');
  11. try
  12. {
  13. // carrega o cliente 1
  14. TTransaction::open('sample');
  15. $customer = new Customer(1);
  16. // define as substituições para a seção main
  17. $replace = array();
  18. $replace['code'] = $customer->id;
  19. $replace['name'] = $customer->name;
  20. $replace['address'] = $customer->address;
  21. // habilita a seção main com as substiuições
  22. $this->html->enableSection('main', $replace);
  23. // define as substituições baseado nos contatos
  24. $replace = array();
  25. foreach($customer->getContacts() as $contact)
  26. {
  27. $replace[] = array('type' => $contact->type, 'value' => $contact->value);
  28. }
  29. // habilita as seções conteacts e contacts-detail (repetitiva)
  30. // porém como podem ver na imagem em anexo, não mostra nada
  31. // e esse customer específico tem pelo menos 2 contatos cadastrados...
  32. $this->html->enableSection('contacts');
  33. $this->html->enableSection('contacts-detail', $replace, TRUE);
  34. parent::add($this->html);
  35. TTransaction::close();
  36. }
  37. catch(Exception $e)
  38. {
  39. new TMessage('error', $e->getMessage());
  40. }
  41. }
  42. }
  43. ?>

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


FC

Existes os registro no banco ?
troque essa parte
// define as substituições baseado nos contatos
$replace = array();
foreach($customer->getContacts() as $contact)
{
$replace[] = array('type' => $contact->type, 'value' => $contact->value);
}

por essa.

$replace = array();
$replace[] = array('type' => 'teste', 'value' => '1');
$replace[] = array('type' => 'teste', 'value' => '1');
WG

Sim existem no banco... e eu troquei pelo código com o array e continua com o mesmo problema...
FC

Calma ae vc ta carregando o registro 1 somente terá 1 registro pq loop?

outra coisa existe o registro id 1?
FC

o loop é dos contatos existe mais de 1 contato para o cliente?

também esta faltando uma tag de uma olhada.
WG

Sim, o loop é para os contatos... inclusive na própria abertura do tópico eu comentei que esse Customer em específico possui 2 contatos, porem nenhum está sendo mostrado...

Antes do loop eu dei um print_$($customer->getContatcs()) e mostra claramente que tem 2 objetos na coleção retornada... porém não mostra nada!
PD

Wemerson,

Executei sei código PHP com o meu HTML e deu certo. Isso quer dizer que o erro está no HTML.

Sugestão: Compare o HTML que você digitou com o que vem com o livro e vai encontrar o problema ;-)

Verá que onde está:
<!--[/contacts-detail-->

Deveria ser:
<!--[contacts-detail]-->

Veja que um simples fechamento de chaves, já impediu o fechamento da seção ;-)

Atenciosamente,
Pablo
WG

agora eu entendi... melindroso!!!!

na verdade o erro não era na barra.. era no fechamento da tag..., Estava <!--[/contacts-detail--> porém o correto é <!--[/contacts-detail]-->... faltou uma simples ] no final.