php项目 学生管理 MVC模式

使用PHP制作 简易员工管理系统之七(MVC实现用户信息增、删、改、查) 立即下载

前言

在原来的原生PHP上在用MVC来写项目复习一下。不过大家注意,自己写的MVC肯定是拿来学习的,不要想着拿来做项目。

项目介绍

学生管理(添加、查看、编辑、删除学生信息)

简单路由(通过 Router 类处理)。

基本的输入验证(防止 SQL 注入、XSS)。

使用 PDO 连接 MySQL。

简洁的 Bootstrap 界面。

文件结构

mvc-php-mysql/
├── app/
│   ├── Controllers/
│   │   └── StudentController.php
│   ├── Models/
│   │   └── Student.php
│   ├── Views/
│   │   ├── students/
│   │   │   ├── index.php
│   │   │   ├── create.php
│   │   │   └── edit.php
│   │   └── layout.php
│   └── Router.php
├── public/
│   ├── index.php
│   ├── .htaccess
│   └── assets/
│       └── bootstrap.min.css
├── vendor/
├── composer.json
└── .env

项目搭建

Composer初始化
{
    "name": "yyf/mvc-php-mysql",
    "description": "A simple PHP MVC project with MySQL for student management",
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "authors": [
        {
            "name": "yyf"
        }
    ],
    "require": {
        "php": ">=7.4",
        "ext-pdo_mysql": "*",
        "vlucas/phpdotenv": "^5.5"
    }
}
创建 .env 文件(根目录):
DB_HOST=localhost
DB_NAME=your_database_name
DB_USER=your_username
DB_PASS=your_password

这里大家换上自己的配置

创建数据库和表:
CREATE TABLE students (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(50) NOT NULL,
  age int(11) NOT NULL,
  gender enum('M','F') NOT NULL,
  class varchar(20) NOT NULL,
  email varchar(100) DEFAULT NULL,
  created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  UNIQUE KEY email (email)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

INSERT INTO students (NAME, age, gender, class, email) VALUES
('张伟', 20, 'M', 'Class A', 'zhangwei@example.com'),
('李娜', 19, 'F', 'Class B', 'lina@example.com'),
('王强', 21, 'M', 'Class A', 'wangqiang@example.com'),
('赵丽', 20, 'F', 'Class C', 'zhaoli@example.com');
数据库

创建app/Database.php

<?php
namespace App;

use PDO;
use PDOException;
use Dotenv\Dotenv;

class Database {
    private $pdo;

    public function __construct() {
        $dotenv = Dotenv::createImmutable(__DIR__ . '/..');
        $dotenv->load();

        $dsn = "mysql:host={$_ENV['DB_HOST']};dbname={$_ENV['DB_NAME']};charset=utf8";
        try {
            $this->pdo = new PDO($dsn, $_ENV['DB_USER'], $_ENV['DB_PASS']);
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            die("Connection failed: " . $e->getMessage());
        }
    }

    public function getPdo() {
        return $this->pdo;
    }
}
路由类

创建app/Router.php

<?php
namespace App;

class Router {
    private $routes = [];

    public function get($path, $callback) {
        $this->routes['GET'][$path] = $callback;
    }

    public function post($path, $callback) {
        $this->routes['POST'][$path] = $callback;
    }

    public function dispatch() {
        $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
        $method = $_SERVER['REQUEST_METHOD'];

        foreach ($this->routes[$method] ?? [] as $path => $callback) {
            $pattern = preg_replace('#\{[\w]+\}#', '(\d+)', $path);
            $pattern = "#^" . $pattern . "$#";

            if (preg_match($pattern, $uri, $matches)) {
                array_shift($matches);
                [$controller, $method] = $callback;
                $instance = new $controller();
                return call_user_func_array([$instance, $method], $matches);
            }
        }

        http_response_code(404);
        echo "404 Not Found";
    }
}
入口文件

创建public/index,php

<?php
require __DIR__ . '/../vendor/autoload.php';

use App\Router;
use App\Controllers\StudentController;

$router = new Router();

$router->get('/', [StudentController::class, 'index']);
$router->get('/index', [StudentController::class, 'index']);
$router->get('/create', [StudentController::class, 'create']);
$router->post('/create', [StudentController::class, 'create']);
$router->get('/edit/{id}', [StudentController::class, 'edit']);
$router->post('/edit/{id}', [StudentController::class, 'edit']);
$router->get('/delete/{id}', [StudentController::class, 'delete']);

$router->dispatch();

学生管理

学生模型

创建app/Models/student.php

<?php
namespace App\Models;

use App\Database;
use PDO;

class Student {
    private $db;

    public function __construct() {
        $this->db = (new Database())->getPdo();
    }

    public function getAll() {
        $stmt = $this->db->query("SELECT * FROM students");
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }

    public function create($data) {
        $sql = "INSERT INTO students (name, age, gender, class, email) VALUES (:name, :age, :gender, :class, :email)";
        $stmt = $this->db->prepare($sql);
        return $stmt->execute($data);
    }

    public function find($id) {
        $stmt = $this->db->prepare("SELECT * FROM students WHERE id = :id");
        $stmt->execute(['id' => $id]);
        return $stmt->fetch(PDO::FETCH_ASSOC);
    }

    public function update($id, $data) {
        $sql = "UPDATE students SET name = :name, age = :age, gender = :gender, class = :class, email = :email WHERE id = :id";
        $data['id'] = $id;
        $stmt = $this->db->prepare($sql);
        return $stmt->execute($data);
    }

    public function delete($id) {
        $stmt = $this->db->prepare("DELETE FROM students WHERE id = :id");
        return $stmt->execute(['id' => $id]);
    }
}
学生控制器

创建app/Controllers/StudentController.php

<?php
namespace App\Controllers;

use App\Models\Student;

class StudentController {
    private $student;

    public function __construct() {
        $this->student = new Student();
    }

    public function index() {
        $students = $this->student->getAll();
        require_once __DIR__ . '/../Views/students/index.php';
    }

    public function create() {
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            // 简单输入验证
            $data = [
                'name' => filter_input(INPUT_POST, 'name', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
                'age' => (int)$_POST['age'],
                'gender' => $_POST['gender'] ?? '',
                'class' => filter_input(INPUT_POST, 'class', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
                'email' => filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL) ?: null
            ];

            if (empty($data['name']) || $data['age'] <= 0 || !in_array($data['gender'], ['M', 'F']) || empty($data['class'])) {
                $error = "请填写所有必填字段并确保输入有效";
                require_once __DIR__ . '/../Views/students/create.php';
                return;
            }

            if ($this->student->create($data)) {
                header('Location: /');
                exit;
            } else {
                $error = "创建学生失败";
                require_once __DIR__ . '/../Views/students/create.php';
            }
        } else {
            require_once __DIR__ . '/../Views/students/create.php';
        }
    }

    public function edit($id) {
        $student = $this->student->find($id);
        if (!$student) {
            http_response_code(404);
            echo "Student not found";
            return;
        }

        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            $data = [
                'name' => filter_input(INPUT_POST, 'name', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
                'age' => (int)$_POST['age'],
                'gender' => $_POST['gender'] ?? '',
                'class' => filter_input(INPUT_POST, 'class', FILTER_SANITIZE_FULL_SPECIAL_CHARS),
                'email' => filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL) ?: null
            ];

            if (empty($data['name']) || $data['age'] <= 0 || !in_array($data['gender'], ['M', 'F']) || empty($data['class'])) {
                $error = "请填写所有必填字段并确保输入有效";
                require_once __DIR__ . '/../Views/students/edit.php';
                return;
            }

            if ($this->student->update($id, $data)) {
                header('Location: /');
                exit;
            } else {
                $error = "更新学生失败";
                require_once __DIR__ . '/../Views/students/edit.php';
            }
        } else {
            require_once __DIR__ . '/../Views/students/edit.php';
        }
    }

    public function delete($id) {
        if ($this->student->find($id)) {
            $this->student->delete($id);
        }
        header('Location: /');
        exit;
    }
}
布局文件

创建app/Views/layout.php

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>学生管理系统</title>
    <link href="/assets/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container mt-4">
        <h1 class="mb-4">学生管理系统</h1>
        <a href="/" class="btn btn-primary mb-3">学生列表</a>
        <a href="/create" class="btn btn-success mb-3">添加学生</a>
        <?php if (isset($error)): ?>
            <div class="alert alert-danger"><?= htmlspecialchars($error) ?></div>
        <?php endif; ?>
        <?php include $content; ?>
    </div>
</body>
</html>
学生列表

创建app/views/students/index.php

<?php $content = __FILE__; ?>
<?php include __DIR__ . '/../layout.php'; ?>
<h2>学生列表</h2>
<table class="table table-bordered">
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>班级</th>
            <th>邮箱</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        <?php if (empty($students)): ?>
            <tr><td colspan="7" class="text-center">无数据</td></tr>
        <?php else: ?>
            <?php foreach ($students as $student): ?>
            <tr>
                <td><?= htmlspecialchars($student['id']) ?></td>
                <td><?= htmlspecialchars($student['name']) ?></td>
                <td><?= htmlspecialchars($student['age']) ?></td>
                <td><?= htmlspecialchars($student['gender'] === 'M' ? '男' : '女') ?></td>
                <td><?= htmlspecialchars($student['class']) ?></td>
                <td><?= htmlspecialchars($student['email'] ?? '') ?></td>
                <td>
                    <a href="/edit/<?= $student['id'] ?>" class="btn btn-sm btn-warning">编辑</a>
                    <a href="/delete/<?= $student['id'] ?>" class="btn btn-sm btn-danger" onclick="return confirm('确定删除?')">删除</a>
                </td>
            </tr>
            <?php endforeach; ?>
        <?php endif; ?>
    </tbody>
</table>
学生添加

创建app/views/students/create.php

<?php $content = __FILE__; ?>
<?php include __DIR__ . '/../layout.php'; ?>
<h2>添加学生</h2>
<form method="POST" action="/create">
    <div class="mb-3">
        <label class="form-label">姓名</label>
        <input type="text" name="name" class="form-control" value="<?= htmlspecialchars($_POST['name'] ?? '') ?>" required>
    </div>
    <div class="mb-3">
        <label class="form-label">年龄</label>
        <input type="number" name="age" class="form-control" value="<?= htmlspecialchars($_POST['age'] ?? '') ?>" required>
    </div>
    <div class="mb-3">
        <label class="form-label">性别</label>
        <select name="gender" class="form-select" required>
            <option value="M" <?= ($_POST['gender'] ?? '') === 'M' ? 'selected' : '' ?>>男</option>
            <option value="F" <?= ($_POST['gender'] ?? '') === 'F' ? 'selected' : '' ?>>女</option>
        </select>
    </div>
    <div class="mb-3">
        <label class="form-label">班级</label>
        <input type="text" name="class" class="form-control" value="<?= htmlspecialchars($_POST['class'] ?? '') ?>" required>
    </div>
    <div class="mb-3">
        <label class="form-label">邮箱</label>
        <input type="email" name="email" class="form-control" value="<?= htmlspecialchars($_POST['email'] ?? '') ?>">
    </div>
    <button type="submit" class="btn btn-primary">提交</button>
</form>
编辑学生

创建app/views/students/edit.php

<?php $content = __FILE__; ?>
<?php include __DIR__ . '/../layout.php'; ?>
<h2>添加学生</h2>
<form method="POST" action="/create">
    <div class="mb-3">
        <label class="form-label">姓名</label>
        <input type="text" name="name" class="form-control" value="<?= htmlspecialchars($_POST['name'] ?? '') ?>" required>
    </div>
    <div class="mb-3">
        <label class="form-label">年龄</label>
        <input type="number" name="age" class="form-control" value="<?= htmlspecialchars($_POST['age'] ?? '') ?>" required>
    </div>
    <div class="mb-3">
        <label class="form-label">性别</label>
        <select name="gender" class="form-select" required>
            <option value="M" <?= ($_POST['gender'] ?? '') === 'M' ? 'selected' : '' ?>>男</option>
            <option value="F" <?= ($_POST['gender'] ?? '') === 'F' ? 'selected' : '' ?>>女</option>
        </select>
    </div>
    <div class="mb-3">
        <label class="form-label">班级</label>
        <input type="text" name="class" class="form-control" value="<?= htmlspecialchars($_POST['class'] ?? '') ?>" required>
    </div>
    <div class="mb-3">
        <label class="form-label">邮箱</label>
        <input type="email" name="email" class="form-control" value="<?= htmlspecialchars($_POST['email'] ?? '') ?>">
    </div>
    <button type="submit" class="btn btn-primary">提交</button>
</form>

完结,先发出来。我在瞅瞅有没有要完善的。有的话再来改,没有就准备下一个项目了。laravel!!!
`

`

`

PHP基于MVC学生信息查询管理系统 学生信息查询管理系统,CRUD都有,而且便于自己修改,页面样式也可以自己扩展,适合新手学习,但是请不要用于商业用途。 立即下载

相关推荐

双鱼林PHP基于MVC学生信息查询管理系统 v1.0

程序开发软件: Zend Studio 9 程序开发环境: PHP + Apache + Mysql MVC设计模式,基于三层模式开发,界面采用div+css布局!采用了ajax技术! 程序功能:管理员后台添加学生信息,条件组合查询

PHP简单MVC架构

由于需要搭建一个简单的框架来进行API接口开发,所以简单的mvc框架当然是首选.最原始,最简洁的mvc框架.下面来介绍下.         一. 项目目录结构: app  |-controller    存放控制器文件  |-model        存放模型文件  |-view        存放视图文件     core |-lib        存放自定义类库  |-conf

Sara的专栏 3万+

北斗三号PPP-B2b信号实战指南:从接收机配置到精度验证全流程

本文提供了北斗三号PPP-B2b信号从硬件配置到数据处理的全流程实战指南。详细解析了信号特性、接收机关键参数设置,并以飞纳接收机和Mass软件为例,演示了数据解算与精度验证方法。通过覆盖中国多地区的联调测试案例,验证了PPP-B2b服务可实现分米级实时定位精度,为无网络地区高精度应用提供了可靠解决方案。

nn3456的博客 554

PHP MVC模式的原理与实现

MVC模式的原理与实现 mvc原理: M->Model模型, 负责数据访问 C->Controller控制器, 负责解析HTTP请求并转发和与模型与视图进行交互 V-View: 负责生成HTML页面 外部对象的依赖注入 容器技术: Container 外观模式: Facade, 门面 模型类Model.php <?php namespace Mvc; //模型类:用于数据库操作,数据访问 class Model { // 用二维数组来模拟一个数据表的结果集的返回 publ

weixin_41946663的博客 707

从零开始构建量化价值投资多因子模型

量化价值投资多因子模型的构建目的在于通过系统性的方法,综合考虑多个影响股票价值的因素,以更准确地评估股票的投资价值,为投资者提供科学的投资决策依据。本模型的构建范围涵盖了从因子的选取、数据的处理、模型的建立到模型的评估和优化等一系列过程。通过对历史数据的分析和回测,验证模型的有效性和稳定性,进而应用于实际的投资组合管理中。本文将按照以下结构进行组织:首先介绍量化价值投资和多因子模型的相关背景知识,包括核心概念和联系;接着详细阐述核心算法原理和具体操作步骤,并给出Python代码示例;

AI天才研究院 1245

S32K344开发环境搭建全攻略:S32DS 3.5.12与RTD 3.0.0实战指南

在嵌入式开发中,集成开发环境(IDE)与实时驱动(RTD)的协同配置是项目启动的关键。S32DS作为NXP官方IDE,结合RTD包,为S32K3系列提供底层驱动支持。正确安装与路径配置能确保编译、调试与烧录流程顺畅,避免常见错误。该环境适用于汽车电子、工业控制等场景,如车身域控、BMS。本文基于S32K344芯片,详细记录从软件下载到调试的完整过程,帮助开发者快速搭建稳定开发环境。

weixin_42713608的博客 211

PHP实现简易的MVC框架

实现MVC框架没有固定的实现方法,根据框架特色和语言特点以及自己的需求进行实现即可。

光头强的博客 7141

硬件单板类机考复习提纲

6、 功率晶体管低导通损耗时处于的状态(饱和状态、放大状态、截止状态)(放大器的采样频率特性)总结:元器件特性(电阻、电容、二极管、三极管、晶体、晶振、MOS、磁珠等)信号质量问题产生根因(单调性、边沿过缓、毛刺、回沟、抖动等)3、 几种电容容量范围大小(超级电容、钽电容、陶瓷电容、铝电容)66、背板连接器接触设计的接触顺序(先导向、再地针、最后信号针)28、逻辑电平接口的特性(CMOS、TTL、ECL、PECL)76、差分电平(lvpecl、RS-422/485、cml)

2303_79562407的博客 1万+

Php+Mvc学习

Mvc学习(一) 最近学习的过程中,使用到MVC框架,在未接触时,只是一个大致的印象,感觉就像盖一座房子,打好了地基,架好了钢筋,然后只需要根据自己的需求建造不同风格的房子就好。侧重在什么风格。实际在接触的过程中明白,这是一种思想的学习。千里之行,始于足下,在还没学会走的时候,就渴望疾风快马是不行的。所以,学习之初,最重要的是能够理解搭建框架的原理。话不多说,内容如下。 什么是mvc? 你要使用M...

weixin_40929263的博客 378

数据分析——员工离职预测

员工离职预测一. 题目描述二. 数据说明三. 步骤实现1.导入并查看2.数据探索性分析3.数据处理4.模型分析5.结果分析(1) 可视化的结果分析(2)特征选择结果分析(3)多模型交叉验证结果分析 一. 题目描述 员工是否准备离职是困扰用人单位的问题,其关系到单位业务的开展及新人员的招聘,及时的分析出有离职倾向的员工成为关键的因素。数据主要包括影响员工离职的各种因素(工资、出差、工作环境满意度、工作投入度、是否加班、是否升职、工资提升比例等)以及员工是否已经离职的对应记录。 二. 数据说明 数据分为训练数据

weixin_43925467的博客 1万+

交换机四种光互联技术:OIO、OBO、NPO与CPO

在过去几十年里,数据中心交换机主要依赖电信号通过铜线进行数据传输。然而,随着数据传输速率从100Gbps向400Gbps、800Gbps甚至1.6Tbps迈进,传统电互联(Electrical Input & Output, EIO)面临三大瓶颈:信号衰减、功耗激增和空间限制。例如,高速信号在长距离铜线传输中会产生严重的信号失真,迫使设计者加入数字信号处理器(DSP)来补偿信号衰减,这进一步推高了功耗和成本。此外,传统可插拔光模块的体积较大,限制了端口密度,难以满足现代数据中心对高带宽密度的需求。

网络技术联盟站 3135

PHP毕设选题推荐:基于php多媒体素材管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

PHP毕设选题推荐:基于php多媒体素材管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

项目帮 610

uniapp+coze制作app智能体

使用 UniApp 配合 Coze 平台来开发一个具备 AI 智能体的 App,是一个高效且实用的选择。其核心思路主要有两种:一种是通过,另一种则是通过实现更自主的集成。下面的流程图可以帮你快速了解这两种方案的全貌。下面,我们来详细看看这两种方案分别如何操作。

suny8的专栏 573

第2弹:推荐一些适合练手、课程设计、毕业设计的PHP 项目源码,无任何下载门槛

一些PHP项目源码,涵盖管理系统、网站,大部分项目的源码以及文档已经配齐,可用来练手以及大学生的课程设计、毕业设计等,无下载使用门槛

weixin_38343072的博客 113

实战案例—encrypt靶场(AES固定key篇)

AES是一种对称密钥加密方法,意味着加密和解密时使用相同的密钥。AES加密存在三种形式:AES-128、AES-192和AES-256,它们分别对应于三种不同的密钥长度——128位(即16字节)、192位(即24字节)和256位(即32字节)。通常情况下,密钥的长度越长,提供的安全性就越高,但相应地,加解密过程所需的时间也会增加。默认情况下,采用的是AES-128,其提供的安全性对于大多数应用来说已经足够充分。

zhouzhou_98的博客 498

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PHP精品项目-基于PHP的初中生作业管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

PHP精品项目-基于PHP的初中生作业管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)

908

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

PHP毕设项目推荐-基于php的宠物电商猫粮狗粮购物商城的设计与实现基于PHP宠物用品商城网站基于php的宠物商城网站的设计与制作【附源码+文档,调试定制服务】

主要内容:免费开题报告、任务书、全bao定制+中期检查PPT、代码编写、🚢文编写和辅导、🚢文降重、长期答辩答疑辅导、一对一专业代码讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路。

我的个人博客:https://bishe666.top 600

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【课程设计/毕业设计】基于php+vue大学生奖学金评定系统基于php+vue的高校资助管理系统的设计与实现【附源码、数据库、万字文档】

主要内容:免费开题报告、任务书、全bao定制+中期检查PPT、代码编写、🚢文编写和辅导、🚢文降重、长期答辩答疑辅导、一对一专业代码讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路。

609

PHP毕设项目:基于php多媒体素材管理系统(源码+文档,讲解、调试运行,定制等)

PHP毕设项目:基于php多媒体素材管理系统(源码+文档,讲解、调试运行,定制等)

2501_91703032的博客 1278

计算机PHP毕设实战-基于php多媒体素材管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

计算机PHP毕设实战-基于php多媒体素材管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

项目帮 1093

PHP毕设项目推荐-基于php的美食推荐系统【附源码+文档,调试定制服务】

PHP毕设项目推荐-基于php的美食推荐系统【附源码+文档,调试定制服务】

我的个人博客:https://bishe666.top 920

PHP毕设选题推荐:基于php的美食推荐系统【附源码、mysql、文档、调试+代码讲解+全bao等】

PHP毕设选题推荐:基于php的美食推荐系统【附源码、mysql、文档、调试+代码讲解+全bao等】

项目帮 841

Laravel框架是什么

## 框架就是一个半成品,他能够帮忙完成一些功能(访问数据库、获取网络数据),我们将这些功能拿到项目中,那么我们的项目也就具备这些功能了## Laravel框架是什么 JQuery它也是一个框架,JS总结操作HTML很复杂,但是通过JQuery之后很简单 Laravel框架是什么 Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework) 方便我们开发web项目 官网:http://www.golaravel.com/ 广告语:为web艺术家创造PHP框架 特点: (1)单

JinYixin0116的博客 961

PHP毕设项目推荐-基于PHP+minedata城市景点旅游规划系统的设计与实现【附源码+文档,调试定制服务】

主要内容:免费开题报告、任务书、全bao定制+中期检查PPT、 代码编写、🚢文编写和辅导、🚢文降重、长期答辩答疑辅导、 一对一专业代码讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路。

我的个人博客:https://bishe666.top 594

小程序毕设项目-基于php+微信小程序的考公资料库分享平台(源码+LW+远程调试+代码讲解等)

小程序毕设项目-基于php+微信小程序的考公资料库分享平台(源码+LW+远程调试+代码讲解等)

795

PHP毕设项目推荐-基于web的摄影网站系统摄影分享平台的设计与实现【附源码+文档,调试定制服务】

PHP毕设项目推荐-基于web的摄影网站系统摄影分享平台的设计与实现【附源码+文档,调试定制服务】

我的个人博客:https://bishe666.top 901
上一篇: php项目 个人中心 完结章:用户中心
下一篇: php laravel入门项目 CURD练习 API接口
四季豆豆豆
博客等级 码龄6年 101粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值