Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

renan.miranda

Função Header não é lida após o TRUE

Recommended Posts

Tenho a classe:

public function deletarCategoria($id){
        $idSub = $this->getIdSub();
        $apagarSub = R::findAll('tbsubcategoria','id_categoria = '.$idSub);
        $apagarCategoria = R::load('tbcategoria', $id);
        R::trashAll($apagarSub);
        R::trash($apagarCategoria);
        return TRUE;
        header("Location: ../../categorias"); 
       
    }

Mas após o TRUE, ela não redireciona para a página, permanecendo na página de execução da função.

É preciso que se passe esse TRUE para poder executar um script. Segue abaixo:

if (isset($_GET['delCat'])) {
    $categoria->setIdSub($_GET['id']);
    $alertDelCat = $categoria->deletarCategoria($_GET['id']);

}

if (isset($alertDelCat) AND $alertDelCat == TRUE) {
    $categoria->alerta('SUCESSO', 'success', 'Categoria deletada');
}

Alguma solução?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

public function deletarCategoria($id){
    $idSub = $this->getIdSub();
    $apagarSub = R::findAll('tbsubcategoria','id_categoria = '.$idSub);
    $apagarCategoria = R::load('tbcategoria', $id);
    R::trashAll($apagarSub);
    R::trash($apagarCategoria);
    header("Location: ../../categorias"); 
    return true;
}

 

A partir do momento que a função chega no "return", a função é finalizada pelo PHP, sendo assim, redirecione antes de finalizar a função, ué.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exato, pq não faz sentido vc ter um HEADER e um RETURN na mesma função.

Os dois causam a saida do fluxo.

 

Repense isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o @William disse, os dois são términos de fluxo.

Acredito que o certo seria:

public function deletarCategoria($id){
        $idSub = $this->getIdSub();
        $apagarSub = R::findAll('tbsubcategoria','id_categoria = '.$idSub);
        $apagarCategoria = R::load('tbcategoria', $id);
        R::trashAll($apagarSub);
        R::trash($apagarCategoria);

        return true;
}

if (isset($_GET['delCat'])) {
    $categoria->setIdSub($_GET['id']);
    $alertDelCat = $categoria->deletarCategoria($_GET['id']);

    if (isset($alertDelCat) AND $alertDelCat == TRUE) {
        $categoria->alerta('SUCESSO', 'success', 'Categoria deletada');
        header("Location: ../../categorias"); 
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.