LazyPHP

Dúvidas

Voltar para o índice do fórum

Ver outros tópicos de 'Dúvidas'

Chamando função do Controller
Ana Cláudia Conde de

4 anos atrás atrás - 22/08/2015

Como faço para chamar uma função do Controller na minha view? Eu olhei na documentação e não encontrei nada a respeito.
Healfull

4 anos atrás atrás - 24/08/2015

Boa pergunta. Dos projetos que mexi com o Lazy e das funções que fiz para a manipulação dos modelos, estas sempre ficaram nos próprios modelos, ai bastava chamar através do objeto mesmo. Mas qual a situação, e por que, chamar um função do controller na view?
Healfull

4 anos atrás atrás - 24/08/2015

Se quiser fazer uma chamada de função sem renderizar nenhuma view recomendo o uso do ajax (não sei se o prof. Miguel concorda com a prática...xD):

$.ajax({
	type: 'post',
	url: '<?php echo SITE_PATH; ?>/Controller/funcao/ajax:true',
	data: variavelComDadosEmQueryString,
	dataType: 'json',
	success: function (ret) {
		console.log('algo maravilhoso acontece');
	},
	fail: function (ret) {
		console.log('falha no ajax');
	},
	error: function (ret) {
		console.log('erro no ajax');
	},
});
O framework entende que ao passar o 'ajax = true' o template não deve ser renderizado, mas este ainda tentará renderizar uma view com o nome da função chamada, para contornar isso insira um die() no final da função:

function post_funcao(){
         //...
	if($this->getParam('ajax')){
		echo json_encode($variavelComInformacoesDeRetorno);
		die();
	}
}
Miguel

4 anos atrás atrás - 24/08/2015

Não se deve chamar um método (função) do controller na view, a não ser por requisições via url. Mas se por um motivo muito forte ainda precisar, as views são componentes dos controllers no Lazy, ou seja, pertencem a mesma instância. para chamar na view, tente isto:

<?php
$this->meuMetodoDoController();
?>

Voltar para o índice do fórum

Ver outros tópicos de 'Dúvidas'