Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde tenho o seguinte cenário ... preciso enviar duas arrays para uma view, já consigo enviar uma array, preciso enviar a outra array q é referente a uma outra tabela. Meu código está assim
controller.php
// Aqui cria o array
$resultadoCampos = $tableCampos->findObjects('id_tabela',$cod);
$array = array('r' =>$resultado,
'empreendimentos' => $empreendimentos,
'cod64' =>$get->cod);
// enviando para a view
$this->chamaView('tabela/formulario.tpl',$array);
view.php
Como receber os dados do meu array, $resultadoCampos ?
Eu tbm achei que não era, mas é sim. Acontece que tbm foi usado Smart ...
Não conheço este método $this->chamaView() e os arquivos view do ZF são .phtml. Não vejo sentido em usar Smarty com o ZF, então nunca usei. Em uma aplicação normal você pode passar o array assim:
$resultadoCampos = $tableCampos->findObjects('id_tabela',$cod);
$array = array('r' =>$resultado,
'empreendimentos' => $empreendimentos,
'cod64' =>$get->cod);
// enviando para a view
$this->view->array = $array;
$this->view->resultadoCampos = $resultadoCampos;Zend_Debug::dump($this->array);
Zend_Debug::dump($this->resultadoCampos);
Carlos Eduardo
Eu tbm não vejo sentido, mas o projeto foi desenvolvido assim então não tenho tempo e nem conhecimento para refazer. Bom mas já consegui resolver o problema, os novos projetos estou vou usar Zend Framework, a propósito estou começando a usar este framework, se conhecer algum tutorial bom para aprender este framework agradeceria muito, os tutorias que achei por ai não gostei muito obrigado pela atenção .... Consegui resolver o problema postado abraço.
Que bom que resolveu sozinho. Se possível, poste a solução encontrada para que outras pessoas com o mesmo problema possam ser ajudadas.
Carlos Eduardo
Ele queria saber como ele receberia os dados no TPL
provavelmente resolveu com $this->array ou algo assim...
Para tutorial de Zend eu recomendo o proprio site do zend... ele é bem completinho.
As vezes fica faltando informação, mas ai com uma buscar rápida no pai de todos pelo nome da função com exemplos... você encontra trocentos blogs ensinando como usar.
Com google é sempre mais fácil você dar o nome da função do framework e colocar example logo depois... que você sempre acha alguem que já postou a respeito... seja pq não entendeu a explicação do Zend ou porque queria fazer algo diferente.
Essa regra de pesquisa é valida para 90% dos frameworks mais utilizados hj em dia.
A dica é nem sempre procurar por resultados em português.
Abraços
Referente a este procedimento eu resolvi alterando o método criado "chamaView" ... Estou retirando o Smart deste projeto para tudo ficar 100% no Zend Framework, pois estou tentando exibir uma simples mensagem na de sucesso na inclusão de novo registro, estou encontrando dificuldades abaixo o código ..
try{
// Armazena os dados em uma procedure
$table->addUsuarios($nome,$login,$crip_senha,$ativo,$tipo);
$msg = 'Registro incluido com sucesso.';
}catch(Zend_Exception $e) {
echo 'Erro ao inserir registro'.$e->getMessage();
}
$this->view->message = $msg;
Recebendo na view
echo $this->message;
Acontece que apenas grava os registros no banco de dados, e não retorna para a view ... Alguém pode me ajudar ?
Para isto existe o helper Flash Messenger. Agora estou no Mobile e não tenho como postar exemplo, mas procurando na net tem vários exemplos.
Carlos Eduardo
Obrigado consegui resolver vou postar abaixo o que fiz, caso alguém precise ...
app/view/Helper/FlashMessages.php
<?php
require_once 'Zend/Session.php';
require_once 'Zend/View/Helper/Abstract.php';
class Zend_View_Helper_FlashMessages extends Zend_View_Helper_Abstract
{
public function flashMessages()
{
$messages = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger')->getMessages();
$output = '';
if (!empty($messages)) {
$output .= '<ul id="messages" style=list-style:none;>';
foreach ($messages as $message) {
$output .= '<li class="' . key($message) . '">' . current($message) . '</li>';
}
$output .= '</ul>';
}
return $output;
}
}
?>
app/controllers/ArquivoController.php
$this->_helper->flashMessenger->addMessage(array('success'=>'Registro inserido com sucesso'));
app/view/scripts/pasta/index.phtml
<?php echo $this->flashMessages(); ?>
Isto é zend framework? Não parece.