🗣 Wd提问: 程序PHP CodeIgniter4
🤖 Ai回答: 以下是一个基于 CodeIgniter 4 的完整用户管理系统示例,包含模型、控制器、视图和路由配置。这个示例实现了用户增删改查功能(CRUD),并使用了 CodeIgniter 4 的标准结构:
1、数据库表结构(MySQL)
sql
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2、创建模型 (`app/Models/UserModel.php`)
php
<?php
namespace App\Models;
use CodeIgniter\Model;
class UserModel extends Model
{
protected $table = 'users';
protected $primaryKey = 'id';
protected $allowedFields = ['name', 'email'];
protected $useTimestamps = true;
protected $createdField = 'created_at';
protected $updatedField = 'updated_at';
}
3、创建控制器 (`app/Controllers/Users.php`)
php
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\UserModel;
class Users extends Controller
{
public function index()
{
$model = new UserModel();
$data['users'] = $model-findAll();
return view('users/index', $data);
}
public function create()
{
return view('users/create');
}
public function store()
{
$model = new UserModel();
$data = [
'name' = $this-request-getPost('name'),
'email' = $this-request-getPost('email')
];
if ($model-save($data)) {
return redirect()-to('/users')-with('success', 'User created successfully!');
}
return redirect()-back()-with('errors', $model-errors());
}
public function edit($id)
{
$model = new UserModel();
$data['user'] = $model-find($id);
return view('users/edit', $data);
}
public function update($id)
{
$model = new UserModel();
$data = [
'name' = $this-request-getPost('name'),
'email' = $this-request-getPost('email')
];
if ($model-update($id, $data)) {
return redirect()-to('/users')-with('success', 'User updated successfully!');
}
return redirect()-back()-with('errors', $model-errors());
}
public function delete($id)
{
$model = new UserModel();
$model-delete($id);
return redirect()-to('/users')-with('success', 'User deleted successfully!');
}
}
4、创建视图(关键文件)
`app/Views/users/index.php` 用户列表
php
<?= $this-extend('layout') ?
<?= $this-section('content') ?
<div class=container mt-4
<h1Users</h1
<div class=d-flex justify-content-between mb-3
<a href=<?= base_url('users/create') ? class=btn btn-primaryAdd User</a
</div
<?php if (session()-getFlashdata('success')): ?
<div class=alert alert-success<?= session()-getFlashdata('success') ?</div
<?php endif; ?
<table class=table table-striped
<thead
<tr
<thID</th
<thName</th
<thEmail</th
<thActions</th
</tr
</thead
<tbody
<?php foreach ($users as $user): ?
<tr
<td<?= $user-id ?</td
<td<?= $user-name ?</td
<td<?= $user-email ?</td
<td
<a href=<?= base_url('users/edit/' 、$user-id) ? class=btn btn-sm btn-warningEdit</a
<form action=<?= base_url('users/delete/' 、$user-id) ? method=POST style=display:inline;
<button type=submit class=btn btn-sm btn-danger onclick=return confirm('Are you sure?')Delete</button
</form
</td
</tr
<?php endforeach; ?
</tbody
</table
</div
<?= $this-endSection() ?
`app/Views/users/create.php` 添加用户
php
<?= $this-extend('layout') ?
<?= $this-section('content') ?
<div class=container mt-4
<h1Create User</h1
<?php if (session()-getFlashdata('errors')): ?
<div class=alert alert-danger
<?= session()-getFlashdata('errors') ?
</div
<?php endif; ?
<form action=<?= base_url('users/store') ? method=post
<div class=mb-3
<label for=name class=form-labelName</label
<input type=text class=form-control id=name name=name required
</div
<div class=mb-3
<label for=email class=form-labelEmail</label
<input type=email class=form-control id=email name=email required
</div
<button type=submit class=btn btn-primaryCreate User</button
</form
</div
<?= $this-endSection() ?
`app/Views/users/edit.php` 编辑用户
php
<?= $this-extend('layout') ?
<?= $this-section('content') ?
<div class=container mt-4
<h1Edit User</h1
<?php if (session()-getFlashdata('errors')): ?
<div class=alert alert-danger
<?= session()-getFlashdata('errors') ?
</div
<?php endif; ?
<form action=<?= base_url('users/update/' 、$user-id) ? method=post
<div class=mb-3
<label for=name class=form-labelName</label
<input type=text class=form-control id=name name=name value=<?= $user-name ? required
</div
<div class=mb-3
<label for=email class=form-labelEmail</label
<input type=email class=form-control id=email name=email value=<?= $user-email ? required
</div
<button type=submit class=btn btn-primaryUpdate User</button
</form
</div
<?= $this-endSection() ?
5、布局文件 (`app/Views/layout.php`)
php
<!DOCTYPE html
<html lang=en
<head
<meta charset=UTF-8
<meta name=viewport content=width=device-width, initial-scale=1.0
<titleUser Management</title
<link href=https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css rel=stylesheet
</head
<body
<nav class=navbar navbar-expand-lg navbar-dark bg-dark
<div class=container
<a class=navbar-brand href=User Management</a
</div
</nav
<div class=container mt-4
<?= $this-renderSection('content') ?
</div
<script src=https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js</script
</body
</html
6、路由配置 (`app/Config/Routes.php`)
php
<?php
// ..、其他路由 ...
// 用户管理路由
$routes-get('/users', 'Users::index');
$routes-get('/users/create', 'Users::create');
$routes-post('/users/store', 'Users::store');
$routes-get('/users/edit/(:num)', 'Users::edit/$1');
$routes-post('/users/update/(:num)', 'Users::update/$1');
$routes-get('/users/delete/(:num)', 'Users::delete/$1');
7、配置说明
1、数据库配置:在 `.env` 文件中设置数据库连接
env
database.default.hostname = localhost
database.default.database = ci4_user
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
2、运行步骤:
执行 `php spark migrate` 创建数据库表
启动服务器 `php spark serve`
访问 `http://localhost:8080/users`
关键特性
1、安全机制:
使用 POST 请求处理数据操作
表单验证错误自动显示
CSRF 保护(CodeIgniter 4 默认启用)
2、响应式设计:
使用 Bootstrap 5 构建界面
📣 商家广告 :
👍
0
👎
IP地址: 17.180.89.162
搜索次数: 0
提问时间: 2025-11-10 08:23:36
🛒 域名购买 :
cdn.hk.cn kb.gs 32.gs 3.hk.cn yb.gs q-u.com.cn 72.gold gang.hk pai.cx v.jl.cn
❓️ 热门提问 :
网站域名申请查询 ip代理独享ip 发电机房牌子 服务器cpu怎么查看 ОÐЛÐЙÐ域名 巴西好的云服务器 32u机柜高度是多少 购买域名在哪最好 电脑主机理线 vps云主机哪个好 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
touwang.com.cn l.qh.cn ee.js.cn drone.js.cn su8.net.cn 65.gg hkza.cn h.tw.cn todm.cn ev.cq.cn
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
贵阳水电安装
搜索引擎导航
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。