1
resposta

Dúvida sobre Controller

Estou com duvidas sobre o funcionamento dos controllers.

Não entendi direito o seu funcionamento. Por exemplo o nome da função que declaramos dentro controller é referente ao link que digitamos no navegador?

Ai o controller então quando recebe a Url esperada executa o

$this->load->view("minhaView")

Está correto o meu pensamento?

Estou tentando criar um formulário de login, entretanto quando eu clico para abrir uma nova view para criar um usuário novo o diretório quebra e fica da seguinte forma:

http://[::1]/Extreme_Dance/Versao_0.1/index.php/login/cadastrar

O que seria este [::1]? Porque sumiu o localHost?

Segue abaixo o codigo:

Index.php

<body>
    <div class="container">
        <h1 align="center">Bem vindo!</h1>
            <?php
                $attributes = array('class' => 'form-group', 'id' => 'loginForm');
                echo form_open("login/autenticar", $attributes);
                echo form_label("Email", "email");
                echo form_input(array(
                    "name" => "email",
                    "id" => "email",
                    "class" => "form-control",
                    "maxlength" => "255"
                ));

                echo form_label("Senha", "senha");
                echo form_password(array(
                      "name" => "senha",
                    "id" => "senha",
                    "class" => "form-control",
                    "maxlength" => "255"
                ));
                ?>
                </br>
                <?php
                echo form_button(array(
                    "class" => "btn btn-primary btn-lg",
                    "content" => "Login",
                    "type" => "submit"
                ));
                echo anchor('login/cadastrar','Novo Cadastro', array("class" => "btn btn-primary btn-lg"));
                echo form_close();
            ?>

    </div>
</body>

LoginController.php

<?php
class LoginController extends CI_Controller{

    public function index(){   //chama view /login/index.php
        $this->load->view("header/header.php");
        $this->load->view("login/index.php");
        $this->load->view("footer/footer.php");

    }

    public function cadastrar() //chama view para novo usuario
    {
        $this->load->view("header/header.php");
        $this->load->view("login/cadastro.php");
        $this->load->view("footer/footer.php");
    }

}

Não postei o header nem o footer porque acredito que não tenha ligação com o problema. Caso seja necessário posto eles também.

Desde já obrigado.

1 resposta

Oi João, tudo bem? Sobre os controllers, é quase isso que você comenta. Acontece que existem dois componentes, o primeiro é o que chamamos de roteador, este define um mapeamento das urls dentro da sua aplicação com os métodos de seus controllers. Uma rota, um método em um controller. É basicamente isso, resumindo e simplificando.

Alguns frameworks facilitam esse acesso seguindo esse padrão de acesso de acordo com o nome do controller e do método.

Esse ::1 se não me engano, é uma outra forma (abreviada) de se referir a localhost, isso se eu não estiver enganado. Agora uma pergunta, como está o link que você clicou para abrir o formulário? Não aparece nenhuma mensagem de erro?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software