Solucionado (ver solução)
Solucionado
(ver solução)
9
respostas

Code Igniter aula 5:

Ao clicar no botão cadastrar, o framework não exibe os dados cadastrados no banco de dados e logo exibe a seguinte tela branca de erro do code igniter com a frase:

An Error Was Encountered

Unable to load the requested file: usuarios_model.php

a minha usuarios_model.php está com o seguinte código:

<?php

class Usuarios_model extends CI_Model{

    public function salva($usuario)
    {
        $this->db->insert("usuarios", $usuario);
    }

}

Alguém pode me ajudar a entender o que acontece?

9 respostas

No teu controller, você não esta carregando o model de produtos.

Bom, fiz essas chamadas no controller.

<?php

class Produtos extends CI_Controller{

    public function index()
    {
        $this->load->database();

        $this->load->model("produtos_model");

        $this->load->helper("url");

        $this->load->helper("currency_helper");

        $this->load->helper("form");

        $produtos = $this->produtos_model->buscaTodos();

        $dados = array(
                "produtos"=>$produtos
                        );

        return $this->load->view("produtos/index.php", $dados);
    }

}

Oi Jonathan,

Coloca o código do seu controller de usuários, pode ser?

Outra coisa, como está o nome do arquivo .php que você colocou no Usuarios_model e em qual pasta você colocou esse arquivo?

Abraço,

ok, esse é o código do controller usuários (usuarios.php):

<?php if ( ! defined('BASEPATH')) exit('No direct script acess allowed');

class Usuarios extends CI_Controller{

    public function novo()
    {
        $usuario = [

        "nome" => $this->input->post("nome"),
        "email" => $this->input->post("email"),
        "senha" => md5($this->input->post("senha"))

        ];

        $this->load->database();
        $this->load->view("usuarios_model");
        $this->usuarios_model->salva($usuario);
        $this->load->view->view("usuarios/novo");

    }

}

sim, quanto a outra pergunta, o nome está usuarios_model.php, e está em models. o código dela é

<?php

class Usuarios_model extends CI_Model{

    public function salva($usuario)
    {

        $this->db->insert("usuarios", $usuario);

    }

}

Oi Jonathan,

O erro pode estar nessa linha do seu controller de Usuários:

$this->load->view("usuarios_model");

Altere para:

$this->load->model("usuarios_model");

Você estava tentando carregar um model com o código de view. Avisa ai o resultado, abraço.

olá, após incluir mudança a aplicação deu erro da linha 30 no controller de produtos.php,

onde:

$dados = array( "produtos"=>$produtos );

return $this->load->template("produtos/index.php", $dados); //nesta linha

Jonathan, qual erro? Coloca a mensagem de erro.

Confere se você criou o template e as views certinho também.

Abraço.

Olá no controller produtos.php estava definindo o retorno da index com os dados, como um template, então estava da seguinte maneira:

<?php

class Produtos extends CI_Controller{

    public function index()
    {

        $this->load->database();

        $this->load->model("produtos_model");

        $this->load->helper("url");

        $this->load->helper("currency_helper");

        $this->load->helper("form");

        $produtos = $this->produtos_model->buscaTodos();

        $dados = array(
                "produtos"=>$produtos
                        );

        return $this->load->template("produtos/index.php", $dados);
    }

}

o que fiz foi retornar a linha depois do array $dados em

return $this->->load->view("produtos/index.php", $dados);

neste, oferecia um método desconhecido ao CI, o template. porém, embora que agora posso acessar a tela de cadastro, ao cadastrar um dado tenho como retorno de erro:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: CI_Loader::$view

Filename: controllers/usuarios.php

Line Number: 18

seguido de:

Fatal error: Call to a member function view() on a non-object in C:\xampp\htdocs\PHP_Alura\mercado\application\controllers\usuarios.php on line 18

neste controller, a linha 18 está como:

$this->load->view->view("usuarios/novo");

solução!

Jonathan,

Na linha 18, mude apenas para:

$this->load->view("usuarios/novo");

Lembre-se de carregar o helper de view, se não já fez isso no arquivo de configuração geral. Antes de usar o load->view.

$this->load->helper("view");

Abraço,