Jump to content
Willians Magán

Problemas com classe declarada no __construct

Recommended Posts

Bom dia,

Estou com problemas para acessa o método de inserção de uma página do meu MVC.

 

Tenho o controller Category criado, e no seu _construct, coloquei o redirecionamento para sua view, e fiz a requisição do model para exibir as categorias cadastradas na tela. Quando crio o método cadastrar, e peço para acessar o model, recebo erro " Fatal error: Cannot declare class CategoryModel, because the name is already in use in E:XXX\model\CategoryModel.php on line 24". Já tentei instanciar em outras páginas e até desconstruir o inicio para poder acessar o formulário e a inserção de novos dados, porém o erro ainda ocorre.

 

Segue os arquivos em questão:

 

CategoryController.php

<?php
    use app\lib\Controller;
    
    class CategoryController extends Controller {
        public function __construct() {
            echo '<p><h1>(categorycontroller.php)Category Controller Page</h1></p>';
            parent::__construct();
            $table = 'category';
            $data = array();
            $model = $this->load->model('CategoryModel');
            $data['cat'] = $model->ListAll($table);
            $this->load->view('category/home', $data);            
        }
        
        public function cadastrar() {
            $table = 'category';
            $data = array(
                'category_name' => 'Viagem',
                'category_title' => 'Viagem',
                'category_status' => 'E',
            );
            $model = $this->load->model('CategoryModel');
            $model->Insert($table, $data);
        }
    }

 

CategoryModel.php

<?php
    use app\lib\Model;
    
    class CategoryModel extends Model {
        public function __construct() {
            echo '<p>(category.php)Model Category da Página Category</p>';
            parent::__construct();
        }
        
        public function ListAll($table) {
            $sql = 'SELECT * FROM ' . $table . ' ORDER BY category_name ASC';
            return $this->db->Read($sql);
        }
        
        public function ListOne($table, $id) {
            $sql = 'SELECT * FROM ' . $table . ' WHERE id = :id';
            $data = array(':id' => $id);
            return $this->db->Read($sql, $data);
        }
        
        public function Insert($table, $data) {
            return $this->db->Create($table, $data);
        }
    }

Imagem1.png

Imagem2.png

Share this post


Link to post
Share on other sites

Porventura, faça esse teste:

 

CÓDIGO

<?php
use app\lib\Controller;

class CategoryController extends Controller {
	private $model;

	public function __construct() {
		echo '<p><h1>(categorycontroller.php)Category Controller Page</h1></p>';

		parent::__construct();

		$table = 'category';
		$data = array();

		$this->model = $this->load->model('CategoryModel');

		$data['cat'] = $this->model->ListAll($table);

		$this->load->view('category/home', $data);
	}

	public function cadastrar() {
		$table = 'category';

		$data = array(
			'category_name' => 'Viagem',
			'category_title' => 'Viagem',
			'category_status' => 'E',
		);

		$this->model->Insert($table, $data);
	}
}

 

Share this post


Link to post
Share on other sites

Disponível ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By dutopfave
      Galera tenho um cadastro de cliente que preenche nome e login, ai quando digita o nome, automaticamente ele preenche o login, pra agiliza, ta assim: $("#inputdonome").blur(function(){ $("#login").val($(this).val()); }); só que to com problema de nome repetido, então vou muda ao invés de preenche automático com nome, preenche com EMAIL, porém tem como preenche automático o login só q para antes de chega no '@'   ai ficaria assim:

      E-mail: contato2019@site.com.br
      Login: contato2019
    • By JenneferBarbosa
      <label>Data Inicio</label> <input type="date" name="data_inicio-incluir" id="data_inicio-incluir"> <label>Data Fim</label> <input type="date" name="data_fim-incluir" id="data_fim-incluir"> Boa tarde pessoal, estou iniciando em JS e não sei como fazer a validação de datas. Estou fazendo um sistema de aluguel de livros, então,  como consigo verificar se a data_fim não é menor que a data inicio e que a data_fim seja de 1 até 7 dias depois da data_inicio, não podendo ultrapassar. Se alguém tiver como me ajudar, ficarei muito grata.  
    • By WitchMad
      Ooi gente!
      Seguinte, estou desenvolvendo uma plataforma para advogados. Nela será consultado processos a partir do web service do PJE.
      No site do PJE me recomendou utilizar o NuSoap para consultar o web service e foi o que eu fiz.
      Segue o código da consulta
      <?php require_once 'nusoap/lib/nusoap.php'; /* Parâmetros Requisitados */ // idConsultante // senhaConsultante // numeroProcesso /* Objetos de Resposta sucesso bollean Indica se houve sucesso na consulta do processo. mensagem string Mensagem informando que o processo foi consultado com sucesso. recibo xs:base64Binary Comprovante do protocolo do processo, que contém os dados básicos do processo. */ $wsdl = "https://www.tjpe.jus.br/pje/intercomunicacao?wsdl"; $client = new nusoap_client($wsdl, 'wsdl'); if($client->getError()){ echo "Erro no construtor" . $client->getError(); exit(); } $result = $client->call('consultarProcesso', array('idConsultante'=>'CPF do Consultante', 'senhaConsultante'=>'Senha do Consultante', 'numeroProcesso'=>'Número do Processo')); echo $result['sucesso']; ?> Acontece que a página fica em branco, sem nenhum tipo de mensagem.
      Se possível gostaria de dicas se há algum erro no código, ou alguma outra ferramenta para consultar web service
    • By Alvaro Pacífico Serpa
      Olá pessoal, eu estava copiando um trecho de um código fonte usando o file_gets_contents
      $log=file_get_contents($url); $trechoInicial = "VideoUrl('"; $trechoFinal = "')"; $posicao1 = strpos($log, $trechoInicial); $posicao2 = strpos( $log, $trechoFinal, $posicao1 ); $trechoCopiado = substr( $log, $posicao1 + strlen( $trechoInicial ), $posicao2 - $posicao1 - strlen( $trechoInicial ) ); echo $trechoCopiado; Estava funcionando perfeitamente e do nada parou de funcionar, tem alguma outra forma de fazer isto que estou fazendo?
    • By Leonardo Ortega
      Prezados, bom dia.
      sou novo por aqui, e me deparei com esta situação:
      estou desenvolvendo um projeto e tudo começou quando apenas mudei o banco de dados que estava conectado. Ou seja, se eu me conecto ao baco de dados anterior, volta todo código html, porém, se conecto ao banco de dados atual as divs desaparecem. 
       
      obs: Isso tb acontece quando eu desativo o php tudo volta como a imagem 1 e se eu ativo fica como a imagem2.
       
      quem pode me ajudar.. desde já muito obrigado.  


×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.