【PHP项目实战训练】——laravel框架的实战项目中可以做模板的增删查改功能(1)


👨‍💻个人主页@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏PHP程序开发


学生考勤签到系统 的增删查改

文章目录


⭐前言⭐

在现代 Web 开发中,构建具有增加、删除、查找和更新功能的应用程序是至关重要的。这些操作通常被统称为 CRUD 操作(创建、读取、更新和删除),是几乎所有 Web 应用程序的核心功能之一。在本教程中,我们将探索如何利用 Laravel 框架来实现这些功能,利用 Laravel 的强大功能和简洁的语法,快速构建一个完整的 CRUD 应用程序。

前提条件:

了解基本的 PHP 编程知识。

已经安装了 Composer 和 Laravel 开发环境。

熟悉 Laravel 的基本概念,如路由、控制器、模型和视图。

内容概述:

创建数据库模型和迁移: 我们将定义数据库模型,并使用 Laravel 的迁移功能创建数据库表,确保数据库结构与应用程序需求一致。

设置路由: 我们将设置路由,将 HTTP 请求映射到相应的控制器方法,建立客户端和服务器端之间的通信桥梁。

编写控制器: 我们将编写控制器来处理业务逻辑,包括创建、读取、更新和删除操作,通过控制器将数据传递给视图或从视图接收用户输入。

创建视图: 我们将创建视图来呈现用户界面,使用户可以执行 CRUD 操作,通过视图呈现数据、接收用户输入并显示相应的结果。


🎶一、添加功能


此方法的添加功能是laravel框架中最经典的添加方法,在其实使用Request 的方法来获取表单所提交的数据,匹配成功数据表单后,用insert插入数据库中,执行插入完成后,进行if判断,如果插入成功刷出进入展示部分。

(1)在头部引用Reques

use Illuminate\Http\Request;

(2)master.blade.php界面展示代码:

复制代码
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href={{asset('/css/bootstrap.min.css')}}>
    <script src={{asset('/js/jquery-3.6.1.min.js')}}></script>
    <title>学生考勤签到系统</title>
    <style>
        body {
            cursor: pointer;
        }
    </style>
</head>
<body>
    {{csrf_field()}}
<div class="container">
    <h1 style="text-align: center;margin: 30px 0">学生考勤签到系统</h1>
    <form action="{{asset('select')}}" method="get" id="formInfo">
        <div>           
            <input type="text" name="classType" id="classType">
            <input  name="reset"  type="submit" value="查询">
        </div>
    </form>
    <form action="delectall.php" method="get">

        <div style="float: right">
            <input  onclick="return alert('确定重置?')" name="reset"  type="submit" value="重置">
        </div>
    </form>
    <table class="table table-hover" id="info">
        <thead>
        <tr>         
            <th>班级</th>
            <th>姓名</th>
            <th>电话</th>
            <th>状态</th>
            <th>签到</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
            @foreach($data as $v)
        <tr>      
            <td>{{$v->class}}</td>
            <td>{{$v->name}}</td>
            <td>{{$v->tel}}</td>
            <td>{{$v->zt}}</td>
            <td>
                    <a type="submit" onclick="return confirm('是否已到场?')" href="{{asset('updata')}}?id={{$v->Id}}"><button>签到</button></a>
            </td>
            <td>
                <button>
                    <a onclick="return confirm(' 确定要删除吗?')" href="{{asset('dela')}}?id={{$v->Id}}">删除</a>
                </button>
            </td>
        </tr> 
        @endforeach
        </tbody>
    </table>
    <div class="text-center">
        <button>
            <a href="{{asset('addym')}}">添加学生</a>
        </button>
    </div>
</div>
<script>     
    </script>
</body>
</html>

点击添加功能将进行跳转到addym.php,其中进行跳转的路径相对于其他的不同,laravel的跳转需要asset('跳转的路径'),例如:{{asset('addym')}}。

添加输入的表单addym.php代码展示

复制代码
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css">
    <title>添加学生页面</title>
</head>
<body>
<div class="container contentCenter col-md-6  col-xs-12 col-lg-12" style="justify-content: center;">
    <h1 style="margin: 50px auto; text-align: center">活动参与成员登记表</h1>
    <form action="{{asset('add1')}}" method="post">
        <div class="form-group">
            <label for="exampleInputEmail1">班级:</label>
            <input type="text"  name="class" class="form-control" id="exampleInputEmail1" placeholder="请输入你所在的班级">
        </div>
        <div class="form-group ">
            <label for="exampleInputPassword1">姓名:</label>
            <input type="text"  name="name" class="form-control" id="exampleInputPassword1" placeholder="请输入姓名">
        </div>
        <div class="form-group ">
            <label for="exampleInputPassword2">电话:</label>
            <input type="tel"  name="tel" class="form-control" id="exampleInputPassword2" placeholder="请输入电话号码">
        </div>

        <div>
            <input  type="hidden" name="zt" value="未签">
        </div>
            <button type="submit" class="btn btn-default" onclick="return confirm('信息确定无误吗?')">确定参加</button>
            {{csrf_field()}}
    </form>
</div>
</body>
<script>
</script>
</html>

在路由下的web.php中添加add的Route路由:

Route::post('add1',[UserController::class,'add1']);

在UserController.php中的控制器中获取表单插入数据库的代码:

复制代码
//add添加
public function add1(Request $request){
    // 接收表单传过来的数据  
    $data['class'] = $request['class'];
    $data['name'] = $request['name'];
    $data['tel'] = $request['tel'];
    $data['zt'] = $request['zt'];
    // 执行添加操作
    $res = DB::table('student')->insert($data);
    // dd($res);返回true 表示添加成功 false表示失败
    if($res){
        // 添加成功跳转至列表页面
        return redirect('show');
    }else{
        // 添加失败跳转至添加页面
        return redirect('zc');
    }
}

🎶二、删除功能


删功能的逻辑相对于其他的三个功能较简单,此功能是通过获取每一行的id所实现的,点击删除按钮后他将会将相关的id传入到控制器中,对数据库中的向相匹配id的行进行删除。

删除的路由如下:

Route::get('dela',[UserController::class,'dela']);

在UserController.php中的控制器中获取id后删除数据库行的代码:

复制代码
//对数据进行删除
public function dela(Request $request)
{
    //接收id
    $where['id'] =$request['id'];
    $res = DB::table('student')->where($where)->delete();
    //dd($res);返回1 表示删除成功 0表示未做删除
    if($res){
        // 删除成功跳转至列表展示
        return redirect('show');
    }else{
        return redirect('show');
    }
}

以上就是PHP程序设计

持续更新PHP程序设计教程,欢迎大家订阅系列专栏🔥PHP程序开发你们的支持就是曼亿点创作的动力💖💖💖

相关推荐
Ashlee_code1 小时前
什么是Web3?金融解决方案
开发语言·金融·架构·eclipse·web3·区块链·php
xiangzhihong82 小时前
使用Universal Links与Android App Links实现网页无缝跳转至应用
android·ios
车载应用猿2 小时前
基于Android14的CarService 启动流程分析
android
没有了遇见3 小时前
Android 渐变色实现总结
android
UrbanJazzerati4 小时前
使用 Thunder Client 调用 Salesforce API 的完整指南
面试·visual studio code
雨白6 小时前
Jetpack系列(四):精通WorkManager,让后台任务不再失控
android·android jetpack
Sally璐璐6 小时前
IPSAN 共享存储详解:架构、优化与落地实践指南
开发语言·php
mmoyula8 小时前
【RK3568 驱动开发:实现一个最基础的网络设备】
android·linux·驱动开发
程序猿阿伟8 小时前
《声音的变形记:Web Audio API的实时特效法则》
开发语言·前端·php
sam.li8 小时前
WebView安全实现(一)
android·安全·webview