用php的mvc框架实现增删查改功能(php+mysql)

Posted 授之以渔y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用php的mvc框架实现增删查改功能(php+mysql)相关的知识,希望对你有一定的参考价值。

实现方法:

M:对数据库的连接和方法的定义

V:控制输出什么网页(视图)

C:控制器

测试工具:使用Subilme

效果图:

添加页面

显示页面(学生列表)

删除后

编辑信息修改

更改后

更改后的储存到数据库内容

mvc框架的创建,这里用命令提示符

M:php artisan make:Model    Models\\StuModel

C:php artisan make:Controller  StudentController  --resource   //自带七个方法

创建的路由

Route::resource('/xue','StudentController');

1.首先创建一个数据库db1,然后创建一张表stu(字段为id,name,class,address)用来储存我们添加的数据

 mvc框架: 

M---从Model入手,封装操作数据库的方法一张数据表对应一个Model(StuModel)

<?php

namespace App\\Models;

use Illuminate\\Database\\Eloquent\\Model;

class StuModel extends Model

    //
    protected $table ="db1.stu";
    protected $primaryKey = "id";
    protected $fillable = ['name','class','address'];//$fillable允许写入和修改
    public $timestamps =false;//新的Model没有时间戳,timestamps添加一条记录,系统会给一个时间,标志什么时候修改,或者添加这条记录,现在设置false则不需要这样的操作,

    public function add($data)
    
        return self::create($data);//self::create($data)等价与insert into userinfo() vaules(),self意思说extends Model里面----Model封装了增删查改的方法

        //insert into userinfo(数组下标) values(数组的值)
        //所以需要把视图的控件名称和数据表字段一致(包括大小写)
    


    public function getall()

        return self::all(); //select *from stu;//获取所有数据
    

    public function del($id)//以id查找到数据删除数据,
        return self::find($id)->delete();//返回一个model本身的find()方法,并以id查找,查找到返回给delete()
    

    public function getone($id)//查找
        return self::find($id);
    


    public function updatedata($data,$id)//更改
        return self::find($id)->update($data);
    

C:StudentController控制器的主要作用是接收用户请求,调用模型处理数据,最后通过视图展示数据

<?php

namespace App\\Http\\Controllers;

use Illuminate\\Http\\Request;
use App\\Models\\StuModel;//引用模型

class StudentController extends Controller

    /**
     * Display a listing of the resource.
     *
     * @return \\Illuminate\\Http\\Response
     */
    public function index()//展示所有记录
    
         $stum=new StuModel();
         $list=$stum->getall();//大批量的数据交给list

         //var_dump($list);

        return view("Stu.index")->with('li',$list);
    

    /**
     * Show the form for creating a new resource.
     *
     * @return \\Illuminate\\Http\\Response
     */
    public function create() //弹出一个视图,提供输入信息的界面
    
        //
        // $str='这是create方法';
        // echo $str; 

        return view('Stu.create');//Stu.create
    

    /**
     * Store a newly created resource in storage.
     *
     * @param  \\Illuminate\\Http\\Request  $request
     * @return \\Illuminate\\Http\\Response
     */
    public function store(Request $request)//从create界面获取信息,实现insert into功能
    
        $data=$request->only('name','class','address');

        //var_dump($data);
        $stum=new StuModel();//创建模型对象
        $stum->add($data);//调用对象方法
        return redirect('xue');//返回给视图

    

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \\Illuminate\\Http\\Response
     */
    public function show($id)//根据id进行查询,select*from 表名 where id = $id
    
        //
        $str ="这是show方法";
        echo $str;
    

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \\Illuminate\\Http\\Response
     */
    public function edit($id)//编辑页面,
    

        $stum=new StuModel();

        $one=$stum->getone($id);

        //var_dump($one);
        return view('Stu.edit')->with('one',$one);

    

    /**
     * Update the specified resource in storage.
     *
     * @param  \\Illuminate\\Http\\Request  $request
     * @param  int  $id
     * @return \\Illuminate\\Http\\Response
     */
    public function update(Request $request, $id)//更改数据,
    

        $data=$request->only('name','class','address');//获取批量数据

            $stum=new StuModel();
            $stum->updatedata($data,$id);

            return redirect('/xue');

    

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \\Illuminate\\Http\\Response
     */
    public function destroy($id)
    

        //echo($id);
        $stum=new StuModel();
        $stum->del($id);
        return redirect('/xue');
    

V:views视图,呈现结果页面

index.blade.php//学生列表页面

<!doctype html>
<html lang=" str_replace('_', '-', app()->getLocale()) ">
    <head>
        <meta charset="utf-8">
      
    </head>
    <body>
        
<div align="center">
    
<form method="POST" action="/xue">

    csrf_field()
    <table border="3" width="300px" height="200px">
        <caption>学生列表</caption>
        <tr>
            <td>id</td>
            <td>姓名</td>
            <td>班级</td>
            <td>地址</td>
            <td>操作</td>
            <td>修改</td>
        </tr>
        @foreach($li as $one)

        <tr>
            <td>$one->id</td>
            <td>$one->name</td>
            <td>$one->class</td>
            <td>$one->address</td>
          <td><form action="/xue/$one->id" method="POST">
                    csrf_field()
                    method_field('delete')
                    <button  value="submit" type="submit">delete</button>
                    
                </form></td>
                <td><a href="/xue/$one->id/edit">编辑</a></td>
        </tr>
        @endforeach
    </table>
</form>
<a href="/xue/create">返回</a>

</div>
    </body>
</html>

create.blade.php//添加学生信息页面

<!doctype html>
<html lang=" str_replace('_', '-', app()->getLocale()) ">
    <head>
        <meta charset="utf-8">
      
    </head>
    <body>
        
<div align="center">
    
<form method="POST" action="/xue">

    csrf_field()//表单令牌
    <table>
        <caption>添加学生</caption>
        <tr>
            <td>姓名</td>
            <td><input type="text" name="name"></td>
        </tr>
        <tr>
            <td>班级</td>
            <td><input type="text" name="class"></td>
        </tr>
        <tr>
            <td>地址</td>
            <td><input type="text" name="address"></td>
        </tr>

        <tr>
            <td><input type="submit" name="提交"></td>
        </tr>

    </table>
    
</form>

</div>
    </body>
</html>

edit.blade.php//编辑学生信息页面

<!doctype html>
<html lang=" str_replace('_', '-', app()->getLocale()) ">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Laravel</title>

        <!-- Fonts -->
        <link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet">

        <!-- Styles -->
        <style>
           
        </style>
    </head>
    <body>
        @if($errors->count() > 0)
        $errors->first()
        @endif
     <form method="POST" action="/xue/$one->id">
            csrf_field() 
            method_field('patch')//给表单增加一个patch请求
            <table>
                <caption>编辑学生</caption>
                  <tr><td>姓名</td><td><input type="text" name="name" value="$one->name"></td></tr>

                 <tr><td>班级</td><td><input type="text" name="class" value="$one->class"></td></tr>

                 <tr><td>地址</td><td><input type="text" name="address" value="$one->address"></td></tr>
                <tr><td><input type="submit" value="提交"></td></tr>



            </table>
            


        </form>


    </body>
</html>

PHP的CI框架实现增删查改

<?php
defined(‘BASEPATH‘) OR exit(‘No direct script access allowed‘);

class Welcome extends MY_Controller {

    /**
     * Index Page for this controller.
     *
     * Maps to the following URL
     *         http://example.com/index.php/welcome
     *    - or -
     *         http://example.com/index.php/welcome/index
     *    - or -
     * Since this controller is set as the default controller in
     * config/routes.php, it‘s displayed at http://example.com/
     *
     * So any other public methods not prefixed with an underscore will
     * map to /index.php/welcome/<method_name>
     * @see https://codeigniter.com/user_guide/general/urls.html
     */
    public function index()
    {
        /*
        //查询表
        $res=$this->db->get(‘pergoods‘);
        //var_dump($res);
        foreach($res->result() as $item){
            echo $item->UserName;
            echo $item->UserID;
            echo $item->Goods;
            echo $item->GdModel;
            echo $item->GdNumber;
            echo $item->GdTime;
            echo ‘<br>‘;
        }*/
        
        
        /*
        //增加表数据
        $data=array(
            ‘UserName‘=>‘张三‘,
            ‘UserID‘=>‘123‘,
        );
        $bool=$this->db->insert(‘pergoods‘,$data);
        var_dump($bool);
        */
        
        
        /*
        //修改
        $data=array(
            ‘UserName‘=>‘李四‘,
            ‘UserID‘=>‘456‘,
        );
        
        $bool=$this->db->update(‘pergoods‘,$data,array(‘RecordID‘=>42));
        var_dump($bool);
        */
        
        
        /*
        //删除
        $bool=$this->db->delete(‘pergoods‘,array(‘RecordID‘=>42));
        var_dump($bool);
        */
        
        
        
        //连贯操作
        $res=$this->db->select(‘RecordID,UserName,UserID‘)
                ->from(‘pergoods‘)
                ->where(‘RecordID >=‘,10)  //RecordID大于等于10
                ->limit(3,2)    //跳过俩条查询三条
                ->order_by(‘RecordID desc‘)
                ->get();
        
        var_dump($res->result());
        //显示最近执行的一条sql
        echo $this->db->last_query();
        
        
    
        /*
        //where操作
        $res=$this->db->where(‘UserName‘,‘刘政‘)->get(‘pergoods‘);
        $res=$this->db->where(‘UserName !=‘,‘刘政‘)->get(‘pergoods‘);
        $res=$this->db->where(array(‘UserName‘=>‘刘政‘))->get(‘pergoods‘);
        $res=$this->db->where(array(‘UserName‘=>‘刘政‘,‘RecordID >‘=>‘10‘))->get(‘pergoods‘);
        echo $this->db->last_query();
        */

        
        //$this->load->view(‘welcome_message‘);
    }
    
}

以上是关于用php的mvc框架实现增删查改功能(php+mysql)的主要内容,如果未能解决你的问题,请参考以下文章

一个php文件怎么写上增删改查 功能?

mybatis实现简单的增删查改

knockout+MVC+webapi+sqlserver完成增删查改

基于MVC实现增删查改

基于MVC实现增删查改

mvc模式下dao中的增删查改