Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Uso do Model
#1
Exclamation 
Bom dia, alguém já está testando o CI4?

Segui o tutorial https://bcit-ci.github.io/CodeIgniter4/tutorial/index.html

Mas estou tendo problema ao tentar usar o Model, estou obtendo o erro de que não foi possível localizar a classe do Model. Já que nessa nova versão do CI o mode de como carregamos o Model mudou, gostaria de saber se alguém passou pelo problema e se o resolveu.

Esse é o código em meu Controller
Código PHP:
<?php namespace AppControllers;

use 
AppModelsNewsModel;

class 
Home extends CodeIgniterController
{
    public function 
index()
    {
        
$model = new NewsModel();
        
$data['news'] = $model->getNews();
        return 
view('welcome_message');
    }


Código do Model

Código PHP:
<?php
class NewsModel extends CodeIgniterModel
{
 
   protected $table 'news';

 
   public function getNews($slug false)
 
   {
 
       if ($slug === false)
 
       {
 
           return $this->findAll();
 
       }

 
       return $this->asArray()
 
       ->where(['slug' => $slug])
 
       ->first();
 
   }



Lembrando que são os códigos do tutorial, não sei se preciso executar algum comando, ou realizar alguma configuração extra, já que não percebi isso na documentação.
Responder
#2
Há alguns meses eu segui este tutorial à risca para estudar o desenvolvimento do CI4, e notei que há vários problemas com o tutorial. 

Muitas informações não batiam com o jeito que o CI4 trabalhava. Talvez porque o CI4 estava mais atualizado ou talvez porque a equipe esqueceu de atualizar o tutorial.

Então, resolvi esperar um poucos mais, pelo menos até uma versão beta do CI4, para começar a estudá-lo.

Neste momento acredito que muita coisa ainda pode mudar no CI4, sendo necessário esquecer e reaprender muita coisa lá na frente.

De qualquer modo, dê uma atenção especial aos namespaces, pois é através da declaração e uso correto deles que os models são localizados.
Responder
#3
(10-10-2017, 02:04 PM)Fábio S. Reszko Escreveu: Há alguns meses eu segui este tutorial à risca para estudar o desenvolvimento do CI4, e notei que há vários problemas com o tutorial. 

Muitas informações não batiam com o jeito que o CI4 trabalhava. Talvez porque o CI4 estava mais atualizado ou talvez porque a equipe esqueceu de atualizar o tutorial.

Então, resolvi esperar um poucos mais, pelo menos até uma versão beta do CI4, para começar a estudá-lo.

Neste momento acredito que muita coisa ainda pode mudar no CI4, sendo necessário esquecer e reaprender muita coisa lá na frente.

De qualquer modo, dê uma atenção especial aos namespaces, pois é através da declaração e uso correto deles que os models são localizados.


Realmente, sei que está em desenvolvimento.

Mas fiquei frustado em não poder testar o que parece ser um simples tutorial. 

Pensei que poderia ser algum comando semelhante ao Laravel, tipo "composer dump-autoload" ou algo do tipo.

É o jeito esperar um pouco mais, e aguardar o beta, sabe se tem alguma previsão?
Responder
#4
Sobre a previsão, não sei dizer. Atualmente ele está na versão pre-alpha 2. Mas não achei nenhuma informação sobre quando poderá sair uma versão beta.
Responder
#5
Bom, recorri ao fórum oficial do CI, o problema todo é o Namespace.
No Model devemos adicionar a seguinte linha: "namespace App\Models;" No inicio do arquivo, como no exemplo:


Código:
<?php

namespace App\Models;

class NewsModel extends \CodeIgniter\Model
{
   protected $table = 'news';

   public function getNews($slug = false)
   {
       if ($slug === false)
       {
           return $this->findAll();
       }

       return $this->asArray()
       ->where(['slug' => $slug])
       ->first();
   }

   public function view($slug = NULL)
   {
       $model = new NewsModel();

       $data['news'] = $model->getNews($slug);

       if (empty($data['news']))
       {
           throw new \CodeIgniter\PageNotFoundException('Cannot find the page: '. $slug);
       }

       $data['title'] = $data['news']['title'];

       echo view('Templates/Header', $data);
       echo view('News/View', $data);
       echo view('Templates/Footer');
   }
}
Responder
#6
Thumbs Up 
O pessoal do CI atualizou o Tutorial. Só tem a observação com relação a Library de validação que não está pronta.

Consegui usar o Model e obtive o resultado da consulta no BD.

O que posso dizer nessa pequena experiência, que o CI está ficando ainda mais TOP. Vamos ter que reaprender novos conceitos, mas é isso, a tecnologia evolui e o conhecimento também.
Responder


Saltar Fórum:


usuários a ver este tópico: 1 Visitante(s)