thinkphp5项目--企业单车网站(三)

news/2024/5/20 23:22:21/文章来源:https://blog.csdn.net/weixin_30649641/article/details/98823189

thinkphp5项目--企业单车网站(三)

 

项目地址

fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Website
https://github.com/fry404006308/BicycleEnterpriseWebsite

 

一、动态查询

thinkphp支持动态查询,这就很方便了,可以根据自己功能或者用户查询自由查找

所以thinkphp功能应该很全,很多时候我可能需要多去找,有很多我不知道的功能

还有很多操作需要自己多用多敲才能会,不管多么复杂和难的,敲着敲着就特别简单了

动态查询支持动态查询方法,例如:
// 根据name字段查询用户
$user = User::getByName('thinkphp');
// 根据email字段查询用户
$user = User::getByEmail('thinkphp@qq.com');

 

1 动态调用:
2 
3 $user = new User;
4 $user->count();
5 $user->where('status','>',0)->count();
6 $user->where('status',1)->avg('score');
7 $user->max('score');

 

 

 

二、模型的两种使用方法

以查询为例:

1、直接在控制器中调用模型对象或者模型的静态方法查找数据库数据

2、在模型中通过方法查找好数据,然后在控制器中调用

 

1、直接在控制器中调用模型对象或者模型的静态方法查找数据库数据

 1 <?php
 2 namespace app\admin\controller;
 3 use think\Controller;
 4 use app\admin\model\Admin as ModelAdmin;
 5 
 6 class Admin extends Controller
 7 {
 8     // //初始胡方法
 9     // public function _initialize(){
10     //     $modelAdmin= new ModelAdmin();
11     // }
12 
13     //列表页
14     public function lst()
15     {
16         $data=ModelAdmin::select();
17         dump($data);die;
18         return view('list');
19     }

 

2、在模型中通过方法查找好数据,然后在控制器中调用

模型

1     public function getAdmin(){
2         return $this->select();
3     } 

 

控制器

1     public function lst()
2     {
3         $modelAdmin= new ModelAdmin();
4         $data=$modelAdmin->getAdmin();
5         dump($data);die;
6         return view('list');
7     }

注意调用方法是->,老是写成java中的.(点)

 

 

三、增删改查的业务逻辑

(1)、增加

   1、在控制器中获取页面表单数据然后传到数据库

 1 //增加页
 2 public function add()
 3 {
 4     if(request()->isPost()){
 5         //获取post提交的数据
 6         $data=input('post.');
 7         //模型处理获取的数据
 8         $modelAdmin= new ModelAdmin();
 9         //结果
10         $res=$modelAdmin->addAdmin($data);
11         
12         // $res=db('admin')->insert($data);
13         if($res){
14             $this->success('添加管理员成功!!',url('admin/lst'));
15         }else{
16             $this->error('添加管理员失败!!');
17         }
18         return;
19     }
20     return view();
21 }

 

 

(2)、删除

   1、在页面通过链接将用户id传给控制器  

1 <a href="#" onClick="warning('确实要删除吗', '{:url('admin/delete',array('id'=>$vo['id']))}')" class="btn btn-danger btn-sm shiny">
2     <i class="fa fa-trash-o"></i> 删除
3 </a>

 

   2、在控制中处理然后在数据库中删除这个特定id的用户

 1 //删除页
 2 public function delete(){
 3     //获取从页面传入的管理员id
 4     $data=input('id');
 5     //模型处理获取的数据
 6     $modelAdmin= new ModelAdmin();
 7     $res=$modelAdmin->deleteAdmin($data);
 8     if($res){
 9         $this->success('删除管理员成功!!',url('admin/lst'));
10     }else{
11         $this->error('删除管理员失败!!');
12     }
13 }

 

 

(3)、修改

  修改操作好像是删除操作和增加操作的一个综合体,步骤比较像删除操作+增加操作

  1、在页面通过链接将用户id传给控制器  

1 <a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny">
2     <i class="fa fa-edit"></i> 编辑
3 </a>

 

  2、在数据库中查询数据显示到修改页面

1 /**part2**/
2 //获取界面传过来的id
3 $id=input('id');
4 //根据id查询数据
5 $modelAdmin= new ModelAdmin();
6 $data=$modelAdmin->findAdmin($id);
7 // dump($data);die;
8 //将数据传递到修改界面
9 $this->assign('data',$data);

 

  3、在控制器中获取页面修改好的表单数据然后传到数据库

 1         /**part3**/
 2         //判断是否为用户post提交
 3         if(request()->isPost()){
 4             $data1=input('post.');
 5             // dump($data1);die;
 6             // 将修改好的数据传入到数据库
 7             $res=$modelAdmin->editAdmin($data1);
 8             if($res){
 9                 $this->success('修改管理员成功!!',url('admin/lst'));
10             }else{
11                 $this->error('修改管理员失败!!');
12             }
13         }

 

(4)、查询

  1、从数据库中查询数据然后分配给页面

1 //列表页
2 public function lst()
3 {
4     // $data=ModelAdmin::select();
5     $modelAdmin= new ModelAdmin();
6     $data=$modelAdmin->getAdmin();
7     $this->assign('data',$data);
8     return view('list');
9 }

 

 

三、thinkphp中引用自己的bootstrap分页样式

1、新增分页php页面,修改分页代码

 

2、修改配置文件

文件名字改的话就是该'type'=>'bootstrap',,如果你重写的样式是aaa.php,这里就弄成'type'=>'aaa',就好

 

 

四、部分字段更新

在更新数据的时候我们可能需要部分字段更新,比如密码为空表示不修改的情况

1 //密码字段为空说明不修改密码
2 return $this->allowField(['username'])->save($data,['id']);

上面的代码是在模型中,表示只允许修改username字段,并且是根据id来修改

1、传数组进去修改的方法很棒

2、thinkphp模型中的方法和数据库中的方式有些是互通的

3、allowField用于部分字段更新

4、用save的时候直接返回成功或者失败的条数(0,1等),用update的时候就是一堆其它的

5、allowField只对save有效,对update无效

 

 

五、没必要所有的数据库操作都通过模型

没必要所有的数据库操作都通过模型,有些很简单不用处理数据的就直接在控制器就好

比较一下下面两种根据id查找管理员信息的方法

1、直接控制器中:

$data=db('admin')->find($id);

 

2、通过模型:

在控制中代码

1 /**part2**/
2 //获取界面传过来的id
3 $id=input('id');
4 //根据id查询数据
5 $modelAdmin= new ModelAdmin();
6 $data=$modelAdmin->findAdmin($id);
7 // dump($data);die;
8 //将数据传递到修改界面
9 $this->assign('data',$data);

模型中代码

 1     /**
 2      * 根据管理员id查找数据
 3      * @param  [type] $id [description]
 4      * @return [type]     [description]
 5      */
 6     public function findAdmin($id){
 7         $data=$this->find($id);
 8         // dump($data);die;
 9         return $data;
10     }

 

一个通过助手函数一行代码,一个19行代码还容易错,不用太规矩,怎么简单怎么来,怎么方便自己,方便大家怎么来。

 

六、field关键词取部分数据

比如当我们表单不需要显示密码的时候,我们可以不取密码,当然也可以取了不显示

$date=db('admin')->field('id,username')->find($id);

比如文章表里面,用不到的时候可以指定不用取文章,不然浪费服务器性能太大了

 

七、关于注释

不是所有的方法都需要写注释,有一些非常非常非常见名知意的方法就不用写啊,比如add,delete,edit,,或者说不用写那么详细

因为注释的作用是方便你,方便大家,怎么简单方便怎么来

关于算法步骤,这个一定要写,这个写了之后思路特别清晰,效率非常高

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/8849835.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_813686.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网站前端】第02章 HTML常用标签

一、标题标签<h1> - <h6> &#xff08;重要&#xff09; 1、例&#xff1a;<h1> 我是一级标题 </h1> 2、语义&#xff1a;作为标题使用&#xff0c;并且依据重要性递减。 二、段落标签&#xff08;重要&#xff09; 1、例&#xff1a;<p> 我…

DotNetCore 结合 Nginx 将网站部署到阿里云

基础环境配置 域名和服务器请先自行购买 基于 云服务器ECS 创建一个应用实例&#xff0c;选择系统镜像为 Ubuntu 16.04&#xff0c;在本机通过 SSH 进行远程连接&#xff0c;并进行相关配置 ssh roothttp://39.108.48.203/...sudo apt-get update sudp apt-get upgrade sudo ap…

html点击按钮跳转到另一个界面_点击查看本周SEO功能优化

SEO是搜索引擎优化&#xff0c;是利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让网站在行业内占据领先地位&#xff0c;获得品牌收益。本周快站针对SEO功能进行了若干优化&#xff0c;现在您可以一键检测您的网站哪里需要进行SEO优化。SEO功能更新使用场景&a…

php记录网站访问,PHP简单实现记录网站访问量功能示例

本文实例讲述了PHP简单实现记录网站访问量功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;tongji/index.php文件&#xff1a;$file dirname(__FILE__)./tongji.db;//$data unserialize(file_get_contents($file));$fpfopen($file,r);$content;if (flock($fp,LOC…

cn域名多少钱_一个常规的企业网站建设大概需要多少钱?企业网站建设价格明细...

一个常规的企业网站建设大概需要多少钱?我们都知道&#xff0c;如果想要把公司网站搭建得更好&#xff0c;只有找专业、正规的网站建设公司来搭建是最省时、省精力、省钱的&#xff0c;下面角点科技的小编就来告诉大家一个常规的企业网站建设大概需要多少钱。一个常规的企业网…

winhttp 访问https_「winhttp」C++用winhttp实现https访问服务器 - seo实验室

winhttp由于项目升级&#xff0c;在数据传输过程中需要经过oauth2.0认证&#xff0c;访问服务器需要https协议。首先&#xff0c;实现C代码访问https 服务器&#xff0c;实现Get和post功能&#xff0c;在网上搜索一通&#xff0c;发现各种各样的都有&#xff0c;有的很简单&…

Linux中什么是动态网站环境及如何部署

当谈论起网站时&#xff0c;我们可能听说过静态和动态这两个词&#xff0c;但却不知道它们的含义&#xff0c;或者从字面意思了解一些却不知道它们的区别。 这一切可以追溯到网站和网络应用程序&#xff0c;Web应用程序是一个网站&#xff0c;但很多网站不是Web应用程序&#x…

外贸资源推荐:做外链做分类-61个高人气英国免费分类广告列表网站

外贸资源推荐&#xff1a;做外链做分类-61个高人气英国免费分类广告列表网站以下内容适合外贸网商&#xff0c;做外链 做分类广告-61个高人气英国免费分类广告列表网站<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr>&…

Zencart_SEO插件:ultimate_seo_urls的htaccess重写url规则

Zencart_SEO插件ultimate_seo_urls的htaccess伪静态重写url规则 #####NOTE:Replace/shop/withtherelativewebpathofyourcataloginthe"RewriteBase"linebelow: //启用重写规则 OptionsFollowSymLinks RewriteEngineOn //重写目录 RewriteBase/ #FromUltimateSEOURL…

ASP.NET 网站路径[转载]

文章来源:http://blog.csdn.net/winnerzone/archive/2007/05/10/1603044.aspx

重建索引要多久_网站关键词多久更新一次-top推

说起关键词&#xff0c;相信大多seoer都有非常深刻的认识&#xff0c;因为要做好网站&#xff0c;关键词的优化是最重要的一环&#xff0c;那么网站关键词多久更新一次对搜索引擎来说比较友好呢&#xff1f;接下去top推的小编就带大家一起来分析一下吧。网站关键词多久更新一次…

ufo帧率测试网站_帧率担当,i5-9600KF与电竞粉更配哦

嗨&#xff01;艾维巴蒂!这里是懂装机和爱玩游戏的雕哥&#xff01;作为一名电竞猛男&#xff0c;我的兴趣爱好无非就是开开黑、搞搞机&#xff0c;偶尔还会研究下Intel14mm拉链技术。不过呢&#xff0c;生活不只有游戏&#xff0c;还有诗和远方啊&#xff01;要攒机咱就得一步…

一步一步SharePoint 2007之六:改变一个网站的导航栏

一步一步操作过的朋友一定会发现&#xff0c;在Site Actions菜单中有两个有些类似的菜单项&#xff0c;一个是Modify Navigation&#xff0c;另外一个是Manager Content and Structure&#xff0c;这两个项目似乎都跟本篇文章要解决的问题有关。不过&#xff0c;在需要改变网站…

一步一步SharePoint 2007之十九:解决实现注册用户后,自动具备访问网站的权限的问题(1)——配置Provider...

摘要  前面的文章中&#xff0c;我们注册一个新用户后&#xff0c;需要手动加到网站的Members用户组中&#xff0c;这个用户才能真正可以访问网站&#xff0c;这点非常不符合我们的习惯&#xff0c;我们希望能够注册后&#xff0c;自动具备访问网站的权限。那么能不能实现这点…

zencart周末在线外贸建站实战案例练习交流-左栏菜单边框制作视频详解

左栏制作主要要熟悉和掌握边框的标题和边框容器内容的编辑与修改的技巧和经验 本视频任务完成如下图所示: 左栏制作 具体步骤和流程 整体到部分/局部 将目标站的css加到主站主样式 在前台调用 leftBoxContainer------box内容对换 详情请看在线 http://v.youku.com/v_show/id_…

messagebox弹框内容提交后怎么清空_买完域名和主机后如何做解析?- B2B外贸网站自建教程(3)...

前文提要&#xff1a;如何注册域名及其注意事项如何购买WordPress托管主机接下来对前两篇说到的三大域名注册商&#xff0c;分别介绍修改NS(域名服务器)的方法。将域名已有服务器改为Siteground主机的域名服务器&#xff0c;能让我们不用逐一配置网站的解析记录&#xff0c;省时…

2012年移动SEO启示

2012年是搜索营销真正成熟的一年 &#xff0c;手机成为增长最大的组成部分之一&#xff0c;其整体搜索市场已达到20&#xff05;的份额。移动媒体的出现&#xff0c;使得搜索引擎优化更难。 展望未来&#xff0c;预计到2012年一年&#xff0c;语义搜索Web 3.0&#xff0c;极大地…

nitc免费效益型企业网站php版 后台不能登陆,NITC(定海神真)免费效益型企业网站PHP版 V3.2...

NITC(定海神真)效益型网站管理系统.PHP特色&#xff1a;1. 网站设计精美&#xff1a;前台页面全部采用DIVCSS架构&#xff0c;设计严格规范&#xff0c;页面精美大气&#xff0c;布局合理。2. 管理操作方便&#xff1a;后台管理界面友好&#xff0c;使用方便&#xff0c;功能强…

2012年5月加拿大旅游网站排名

2019独角兽企业重金招聘Python工程师标准>>> 2012年5月排名&#xff1a;Expedia Canada居于旅游中介网站首位&#xff0c;TripAdvisor Canada居于目的地及住宿网站首位&#xff0c;Air Canada居于航空公司网站首位。 旅游中介 排名 网站名称 域名 访问率 1 Exp…

iis 加载图片很慢_如果网速快,你打开某些网站还是很慢,这些网站要小心

据近期调查&#xff0c;有40% 的用户&#xff0c; 会因为网站加载时间超过3秒而放弃访问&#xff0c;这年头&#xff0c;千兆光纤&#xff0c;4K视频串流&#xff0c;还有大型在线多人游戏遍地跑&#xff0c;为什么只包含文字和图片的网页&#xff0c;经常要等半天才能加载出来…