Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

Android程序员学PHP开发(40)-ThinkPHP5.0(12)后台操作数据库(3)修改-phpStudy+PhpStorm

$
0
0
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/62228970
觉得博文有用,请点赞,请评论,请关注,谢谢!~


数据库必须掌握的“增、删、改、查,我个人觉得“改”是最难的,让我们来大概的看一下,如何实现。


截止到目前的项目源码:http://download.csdn.net/detail/iwanghang/9782231

\iwanghang\application\admin\controller\Cate.php

<?php
/**
 * 列表控制器
 * http://www.iwanghang.com/admin/cate/lst
 */
namespace app\admin\controller;
use think\Controller;
class Cate extends Controller
{
    // 列表页面
    public function lst()
    {
        // 查询cate表信息并打印  一条数据
        // $data = \think\Db::name('cate')->find();  
        // print_r($data);  

        // 查询cate表信息并打印  所有数据
        $cateres = \think\Db::name('cate')->select();
        //dump($cateres);
        // echo "<pre>";
        // var_dump($data);  
        // echo "</pre>";
        
        // 分配模板
        $this->assign('cateres',$cateres);

        // 循环输出标签   http://www.kancloud.cn/manual/thinkphp5/125017
        // 将标签输出到 /application/admin/view/Cate/lst.html     {volist name="cateres" id="vo"} {/volist}
        // 条件判断     http://www.kancloud.cn/manual/thinkphp5/125019
        // 用于判断栏目类型     /application/admin/view/Cate/lst.html
        // {if condition="$vo['type'] eq 0"} 列表栏目
        // {elseif condition="$vo['type'] == 1"/}留言板
        // {else /} 其他类型
        // {/if}

        return $this->fetch();
    }

    // 添加页面
    // 对应文件 /application/admin/view/Cate/add.html
    // 助手函数    http://www.kancloud.cn/manual/thinkphp5/144731
    // 助手函数中的:input 获取输入数据 支持默认值和过滤
    // 把数据接过来以后,要判断(也就是验证数据有的有效性,不能为空等等),然后添加到数据库
    // 验证器 http://www.kancloud.cn/manual/thinkphp5/129352
    // 添加一条数据   http://www.kancloud.cn/manual/thinkphp5/135177
    public function add()
    {

        if (request()->isPost()) {
            $data = [
                'catename' => input('catename'),
                'keywords' => input('keywords'),
                'desc' => input('desc'),
                //'type' => input('type'), 这样写没有默认值,我用下面的三元运算符的写法
                'type' => input('type') ? input('type') : 0, // 三元运算符 如果input('type')不为空,则取input('type'),否则取0
            ];

            // 验证器  http://www.kancloud.cn/manual/thinkphp5/129352
            // 在需要进行User验证的地方,添加如下代码即可:
            $validate = \think\Loader::validate('Cate');
            if (!$validate->check($data)) {
                return $this->error($validate->getError());
                die();
            }


            // 添加一条数据
            $db = \think\Db::name('cate')->insert($data);

            // 判断是否成功
            if ($db) {
                return $this->success('添加栏目成功!','lst');
            }else{
                return $this->error('添加栏目失败!');
            }
            return;
        }
        return $this->fetch();
    }

    // 删除函数
    // 删除数据 http://www.kancloud.cn/manual/thinkphp5/135179
    public function del()
    {
        $id = input('id');
        if (db('cate')->delete($id)) {
            return $this->success('删除栏目成功!','lst');
        }else{
            return $this->error('删除栏目失败!');
        }
    }

    // 修改数据
    // 查询数据 http://www.kancloud.cn/manual/thinkphp5/135176
    // 更新数据 http://www.kancloud.cn/manual/thinkphp5/135178
    public function edit()
    {
        if(request()->isPost()){
            $data = [
                'id'=>input('id'),
                'catename'=>input('catename'),
                'keywords'=>input('keywords'),
                'desc'=>input('desc'),
                'type'=>input('type')
            ];
            if ($db=\think\Db::name('cate')->update($data))
            {
                return $this->success('修改栏目成功!','lst');
            }else{
                return $this->error('修改栏目失败!');
            }
            return; // 这里加一个return 如果提交表单就不在继续下面的代码
        }

        $id = input('id'); // 获取id
        $cates = db('cate')->where('id',$id)->find(); // 根据id查询数据
        $this->assign('cates',$cates); // 分配模板
        return $this->fetch();
    }
}
\iwanghang\application\admin\view\Cate\edit.html

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>后台管理</title>
    <link rel="stylesheet" type="text/css" href="__PUBLIC__/static/admin/css/common.css"/>
    <link rel="stylesheet" type="text/css" href="__PUBLIC__/static/admin/css/main.css"/>
    <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/modernizr.min.js"></script>
    <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/ueditor.config.js"></script>
    <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/ueditor.all.min.js"></script>
    <script type="text/javascript" src="__PUBLIC__/static/admin/js/libs/lang/zh-cn/zh-cn.js"></script>
</head>
<body>
{include file="Public/top" /}
<div class="container clearfix">
{include file="Public/left" /}
    <!--/sidebar-->
    <div class="main-wrap">

        <div class="crumb-wrap">
            <div class="crumb-list"><i class="icon-font"></i>
                <a href="/iwanghang/index.php/admin">首页</a>
                <span class="crumb-step">></span>
                <a class="crumb-name" href="/iwanghang/index.php/admin/cate/lst">栏目管理</a>
                <span class="crumb-step">></span>
                <span>修改栏目</span></div>
        </div>
        <div class="result-wrap">
            <div class="result-content">
                <form action="" method="post" id="myform" name="myform" enctype="multipart/form-data">
                    <!--下面一行 是 隐藏域,用于收集表单数据-->
                    <input type="hidden" name="id" value="{cates.id}">
                    <table class="insert-tab" width="100%">
                        <tbody>
                        <!-- <tr> -->
                            <!-- <th width="120"><i class="require-red">*</i>栏目类型:</th> -->
                            <!-- <td> -->
                                <!-- <select name="type" id="catid" class="required"> -->
                                    <!-- <option value="">请选择</option> -->
                                    <!-- <option value="19">列表</option><option value="20">留言</option> -->
                                <!-- </select> -->
                            <!-- </td> -->
                        <!-- </tr> -->
                            <tr >
                                <th style="width: 10%;"><i class="require-red">*</i>栏目名称:</th>
                                <td>
                                    <input class="common-text required" id="title" name="catename" size="50" value="{$cates.catename}" type="text">
                                </td>
                            </tr>
                            <tr>
                                <th>栏目关键词:</th>
                                <td><input class="common-text" name="keywords" size="50" value="{$cates.keywords}" type="text"></td>
                            </tr>
                            <tr>
                                <th><i class="require-red">*</i>栏目类型:</th>
                                <td><input name="type" value="1" type="checkbox"
                                {if condition="$cates.type eq 1"}checked='checked'{if}
                                > 留言板</td>
                            </tr>
                            <tr>
                                <th>栏目描述:</th>
                                <td><textarea name="desc" class="common-textarea" id="content" cols="30" style="width: 98%;" rows="10">{$cates.desc}</textarea>
                                </td>
                            </tr>
                            <tr>
                                <th></th>
                                <td>
                                    <input class="btn btn-primary btn6 mr10" value="提交" type="submit">
                                    <input class="btn btn6" onclick="history.go(-1)" value="返回" type="button">
                                </td>
                            </tr>
                        </tbody></table>
                </form>
            </div>
        </div>

    </div>
    <!--/main-->
</div>
  <script type="text/javascript">
      //实例化编辑器
      //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
      UE.getEditor('content',{initialFrameWidth:1000,initialFrameHeight:400,});
  </script>
</body>
</html>
需要注意的是:

因为修改数据,需要id字段信息,所以在edit.html里,我们使用了:

                    <!--下面一行 是 隐藏域,用于收集表单数据-->
                    <input type="hidden" name="id" value="{cates.id}">

但是这里我们并没有验证数据的有效性,请关注后续博客。








转载请注明出处:http://blog.csdn.net/iwanghang/article/details/62228970



欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式

微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com



觉得博文有用,请点赞,请评论,请关注,谢谢!~

作者:iwanghang 发表于2017/3/15 16:37:53 原文链接
阅读:31 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>