• TP5学习基础一:增删改查小demo


    ①TP5--增删改查简单的demo

    我先吐槽一下:因为工作需要研究tp5,去官网看了一下哎呦,资源挺多挺全啊!然后下载唯一免费的官方教程,我曹pdf打开533页。讲的很细但是开发能等看完才做吗?看到精简版快速入门的还软妹币20试读3章。寻思找个demo案例吧,要不加群拿源码,要不视频教程收费。特喵的框架是开源的但是教程是收费的。寻思去论坛看看问题,不是我喷好多技术小白的问题,我想看看怎么获取传参传值,泥煤那个系统变量是什么鬼?挣扎了3个小时我放弃了官网。在度娘上找到一个demo,吭哧吭哧啃完。一天半才搞出这些,我也是个技术新手,没接触过这个所以看着乱七八糟,还没时间耐心去看那个533 页的官方文档。对于官网这样可以理解代码不收钱总点挣点钱吧,但是你能不能给我一个最简单的增删改查demo?下载下的是裸框~心累,明显浪费的很多时间在思考代码怎么写上。看来还是自己能力不到位,还要努力。吐槽完毕~

    以下是正文:可能有的地方错误但是这是给新手小白看,绝对没有误导别人,我现在也就搞懂这些,只要能给各位看官们一点启发就证明我没白写。有错请指出~~~~~~我也学习学习~~没事别喷我,我这又不是义务分享,看不下去别吵吵自己滚。

    总结:
    a. 不可使用字母函数如:M,U,I等。可使用model,:url(),input()等助手函数进行操作(另附官网好心人发文链接 : http://www.thinkphp.cn/topic/42108.html )。
    b. 获取form调教数据:$str=input('post.name'); || ('传递方法.字段名')。当是写post. 无字段名时自动获取全部的表单数据进行array写入。
    c. 获取a标签传参:$str=input('id'); || ('参数名')。仅写a标签中的参数名称,input助手函数可自动判断post或者get方式。
    d. 数据的处理操作建议将代码写入model中,然后通过controller进行实例化model类($test=model('Test');)。然后进行复制调用model中相应操作的方法($res=$test->addTest())。然后通过判断方法传值的true||false进行页面跳转验证及显示。
    e. controller中只能通过Db助手函数进行数据的操作,同理model中无操作。
    f. model命名应与数据表名一致,这样框架在执行操作时会自动查找相对应表。如果命名不一致,则在model中需要进行数据表的声明(protected $table='表名');然后操作中直接写(Test::操作名 )即可。

    g.命令行是个好东西(另附整理链接: http://www.cnblogs.com/douz/p/6811471.html)

    代码示例:
    视图view:
    1.增($user->pwd = md5(input('post.pwd'));)
    方法1:数据库操作写入model中,controller只进行m中的方法调用
     
    方法2:
    方法3:使用Db助手函数直接调用数据库操作。
    2.查:数据库操作写入model中,controller直接调用方法
    //model中进行数据的select()操作
    public function getUser()
    {
    $user = Demo::select();
    return $user;
    }
    //controller中进行视图的加载和数据的传递
    $res = $user->getUser();
    //引入视图并传递查询结果
    return view('demo',['res'=>$res]);
    3.改
    //model中进行数据的select()操作
    public function edit()
    {
    if(request()->isGet()){
    $res = Db::table('user')->where('id',input('get.id'))->update(['user' => input('get.user')]) ;
    if($res){
    return $this->success('修改成功');
    }else{
    return $this->error('修改失败');
    }
    }
    }
    4.删:使用Db助手函数直接调用数据库操作。
    public function del()
    {
    //return input('id');
    if(request()->isGet()){
    $res = Db::table('user')->where('id',input('id'))->delete();
    if($res){
    return $this->success('删除成功');
    }else{
    return $this->error('删除失败');
    }
    }
    }
     
     
     
    <------ 个人原创 | 转载请注明逗子 | 新手适合 | 大牛勿扰 | 有偏颇地方请指出我也学习学习 ------>
  • 相关阅读:
    【LeetCode题解】844_比较含退格的字符串(Backspace-String-Compare)
    【LeetCode题解】25_k个一组翻转链表(Reverse-Nodes-in-k-Group)
    【LeetCode题解】24_两两交换链表中的节点(Swap-Nodes-in-Pairs)
    【LeetCode题解】347_前K个高频元素(Top-K-Frequent-Elements)
    【LeetCode题解】19_删除链表的倒数第N个节点(Remove-Nth-Node-From-End-of-List)
    【LeetCode题解】61_旋转链表(Rotate-List)
    IdentityServer4密码模式接入现有用户数据表
    .Net Core Swagger:Actions require an explicit HttpMethod binding for Swagger 2.0
    ABP缓存
    ABP仓储
  • 原文地址:https://www.cnblogs.com/douz/p/6811460.html
Copyright © 2020-2023  润新知