FP
Retornar dados de uma classe
Bom dia amigos, eu tenho a seguinte classe que executa calculos no banco de dados atravez de uma view,
meu problema e retornar os dados resultantes dessa view, sou programador pascal kkkkk
$array = ['empresa_id'=>$empresa_id,'pessoa_id'=>$pessoa_id]; aqui passo dados para o array
$qrsaldo = new vw_saldoclientedinheiro($array); //aqui instancio a classe passando o array como parâmetros,
Imaginei eu na minha cabeça arcaica de programador fluente em pascal que eu estaria recebendo no $qrsaldo um array com o resultado dessa view porem não e isso que esta acontecendo, alguém pode me dar uma luz no fim do túnel.
meu problema e retornar os dados resultantes dessa view, sou programador pascal kkkkk
- <?php
- class vw_saldoclientedinheiro extends TPage
- {
- public function __construct($param)
- {
- parent::__construct();
- try
- {
- //print_r($param['empresa_id']);
- TTransaction::open('permission'); // abre uma transação
- $conn = TTransaction::get(); // obtém a conexão
- $sth = $conn->prepare('SELECT valor,fino from vw_saldoclientedinheiro
- WHERE empresa_id = ? AND pessoa_id = ?');
- $sth->execute(array($param['empresa_id'],$param['pessoa_id']));
- $result = $sth->fetchAll(); //
- //print_r($result);
- return $result;
- TTransaction::close(); // fecha a transação.
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- }
- ?>
$array = ['empresa_id'=>$empresa_id,'pessoa_id'=>$pessoa_id]; aqui passo dados para o array
$qrsaldo = new vw_saldoclientedinheiro($array); //aqui instancio a classe passando o array como parâmetros,
Imaginei eu na minha cabeça arcaica de programador fluente em pascal que eu estaria recebendo no $qrsaldo um array com o resultado dessa view porem não e isso que esta acontecendo, alguém pode me dar uma luz no fim do túnel.
Fernando, o construtor de uma classe sempre retorna a própria classe. Crie outra função para retornar estes valores.
Também sugiro criar um model para esta view.
Nataniel Rabaioli.
Vou fazer o teste com a model tbm já havia pensado nisso porém por questões de conhecimento gostaria de saber como retornar isso de uma classe, pode me dar uma exemplo ai de como seria o correto para essa minha classe retornar um array ow uma lista de objetos?
Fernando, é só criar outra função:
Nesse exemplo eu só substitui a função __construct pela função getSaldo, pois a construct não pode ser utilizada para retornar valores.
Bom dia Nataniel Rabaioli.
Sua dica funcionou porém tive problemas para receber o array, precisei fazer dessa maneira
agora gostaria de saber o motivo pelo qual eu nao posso simplesmente dar um
$result = $sth->fetchAll(); //
//print_r($result);
return $result;
usando apenas um return no resultado do fetchAll() ele não me permite acessar os índices do array, ate acesso mas apenas dentro da função da classe, quando retorno isso pra outra classe da erro, por questões de entendimento gostaria de saber o motivo.
Fernando, fiz o teste aqui retornando $result e funcionou normal.