Após a implementação das páginas estáticas, o próximo passo no desenvolvimento do CMS com CodeIgniter 4 é configurar o banco de dados e criar os models para gerenciar o conteúdo. O CodeIgniter 4 utiliza o Query Builder e a classe Model para facilitar a interação com o banco de dados de forma segura e estruturada.
Configurando o Banco de Dados
Antes de criar as tabelas, é necessário configurar a conexão com o banco de dados no arquivo app/Config/Database.php. Acesse o arquivo e ajuste os seguintes parâmetros de acordo com o seu ambiente:
public $default = [
'DSN' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'codeigniter_cms',
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => true,
'cacheOn' => false,
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3306,
];
Com essa configuração, o CodeIgniter 4 estará pronto para se conectar ao banco de dados MySQL.
Criando a Tabela de Posts
Para armazenar as postagens do blog, é necessário criar a tabela posts. Isso pode ser feito diretamente no banco de dados ou através de uma migration.
Caso opte por usar migrations, crie um novo arquivo de migração com o comando:
php spark migrate:create CreatePostsTable
Isso criará um arquivo dentro do diretório app/Database/Migrations/. Edite o arquivo para definir a estrutura da tabela:
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class CreatePostsTable extends Migration
{
public function up()
{
$this->forge->addField([
'id' => ['type' => 'INT', 'constraint' => 11, 'auto_increment' => true, 'unsigned' => true],
'titulo' => ['type' => 'VARCHAR', 'constraint' => 255],
'conteudo' => ['type' => 'TEXT'],
'autor' => ['type' => 'VARCHAR', 'constraint' => 100],
'created_at' => ['type' => 'DATETIME', 'null' => true],
'updated_at' => ['type' => 'DATETIME', 'null' => true],
]);
$this->forge->addPrimaryKey('id');
$this->forge->createTable('posts');
}
public function down()
{
$this->forge->dropTable('posts');
}
}
Para executar a migração e criar a tabela no banco de dados, use:
php spark migrate
Criando o Model para Posts
Agora que a tabela foi criada, é necessário criar um Model para interagir com ela. No diretório app/Models/, crie o arquivo PostModel.php com o seguinte conteúdo:
namespace App\Models;
use CodeIgniter\Model;
class PostModel extends Model
{
protected $table = 'posts';
protected $primaryKey = 'id';
protected $allowedFields = ['titulo', 'conteudo', 'autor', 'created_at', 'updated_at'];
protected $useTimestamps = true;
}
Esse model permite acessar os dados da tabela posts de maneira simplificada.
Utilizando o Model no Controller
Para listar os posts em um controlador, basta instanciar o model:
namespace App\Controllers;
use App\Models\PostModel;
use CodeIgniter\Controller;
class BlogController extends Controller
{
public function index()
{
$model = new PostModel();
$data['posts'] = $model->findAll();
return view('blog/lista', $data);
}
}
Conclusão
Com a configuração do banco de dados concluída e a criação do primeiro model, a base para a gestão de conteúdo está pronta. Nos próximos posts, abordaremos a implementação do blog com paginação e a criação da área administrativa para gerenciamento dos posts.
Se você ou sua empresa precisa de suporte para desenvolvimento com CodeIgniter 4, a Saldaris Consultoria pode ajudar. Entre em contato pelo formulário no final da página para saber mais sobre nossos serviços.
Erro: Formulário de contato não encontrado.


