thinkphp5项目--个人博客(五)

项目地址

fry404006308/personalBlog: personalBlog
https://github.com/fry404006308/personalBlog

后台操作完成的差不多了,下面开始前台操作

一、数据库数据分配到前台

在后台设置好的数据分配到前台

后台数据

数据库数据

前台数据

下面讲如何操作

控制器中得到数据并分配数据

 1 <?php
 2 namespace app\index\controller;
 3
 4 use think\Controller;
 5 use think\Db;
 6 class Index extends controller
 7 {
 8     public function index()
 9     {
10         //得到数据,并且分配
11         $cateres = Db::name('cate')->order('id asc')->select();
12         $this->assign('cateres',$cateres);
13
14         return view();
15     }
16 }

视图页面显示数据

1                         {volist name="cateres" id="value"}
2                             <a href="{:url('cate/index',array('cateid'=>$value['id']))}"  rel='dropmenu209'>{$value.catename}</a>
3                         {/volist}

可以写一个基类,然后其它类继承这个基类来完成对数据的分配。

二、文章的分类显示

之前的页面传递的数据

1                         <a href="{:url('index/index')}"  rel='dropmenu209'>首页</a>
2                         {volist name="cateres" id="value"}
3                             <a href="{:url('cate/index',array('cateid'=>$value['id']))}"  rel='dropmenu209'>{$value.catename}</a>
4                         {/volist}

控制器

1     public function index()
2     {
3         $cateid=input('cateid');
4         $articleres=db('article')->where(array('cateid'=>$cateid))->paginate(1);
5         $this->assign('articleres',$articleres);
6         return view();
7     }

视图

 1     <div class="left">
 2
 3         {volist name="articleres" id="value"}
 4         <div class="xnews2">
 5             <div class="pic">
 6                 <a target="_blank" href="20160920156216.html">
 7                     <img src="{if condition="$value['pic'] neq '' "}__IMG__{$value.pic} {else /}__PUBLIC__/images/error.png{/if} " alt="{$value.title}"/>
 8                 </a>
 9             </div>
10             <div class="dec">
11                 <h3><a target="_blank" href="20160920156216.html">{$value.title}</a></h3>
12                 <div class="time">发布时间:{$value.time|date="Y-m-d",###}</div>
13                 <p>{$value.desc}</p>
14                 <div class="time"><a href='z97712.html'>聚餐</a>  </div>
15             </div>
16         </div>
17         {/volist}
18
19         <div class="pages">
20             <div class="plist" >
21                 {$articleres->render()}
22             </div>
23         </div>
24     </div>

三、文章浏览量自动增加

每访问一次这个方法就会让这个文章的访问量自动增加一次

 1 <?php
 2 namespace app\index\controller;
 3
 4 use app\index\controller\Base;
 5 class Article extends Base
 6 {
 7     public function index()
 8     {
 9         $arid=input('arid');
10         $articleres=db('article')->find($arid);
11         //访问一次这个方法,说明文章被访问一次,让文章的click字段值加1
12         db('article')->where('id','=',$arid)->setInc('click');
13         $cateres=db('cate')->find($articleres['cateid']);
14         $this->assign(array(
15             'articleres'=>$articleres,
16             'cateres'=>$cateres,
17         ));
18
19
20         return view();
21     }
22 }

thinkphp手册参考

 1 自增或自减一个字段的值
 2 setInc/setDec 如不加第二个参数,默认值为1
 3
 4 // score 字段加 1
 5 Db::table('think_user')
 6 ->where('id', 1)
 7 ->setInc('score');
 8 // score 字段加 5
 9 Db::table('think_user')
10 ->where('id', 1)
11 ->setInc('score', 5);
12 // score 字段减 1
13 Db::table('think_user')
14 ->where('id', 1)
15 ->setDec('score');
16 // score 字段减 5
17 Db::table('think_user')
18 ->where('id', 1)
19 ->setDec('score', 5);

四、mysql默认初始值

改紫色框框的位置,而不是下面的zerofill

五、多个数据需要分配到页面的时候,可用数组方式

1         $this->assign(array(
2             'articleres'=>$articleres,
3             'cateres'=>$cateres,
4         ));

六、别人网站上面的效果能完全弄下来

CSS和JS的话可以直接弄下来,打开网站源代码点CSS和JS的链接,就可以全部弄下来,或者直接用在线的,link地址就写他们网站就好

就是你看到的源代码的部分是已经执行过逻辑的部分了,所以逻辑部分你是看不到的,比如说php逻辑部分。

七、article部分完成

控制器

 1 <?php
 2 namespace app\index\controller;
 3
 4 use app\index\controller\Base;
 5 class Article extends Base
 6 {
 7     public function index()
 8     {
 9         $arid=input('arid');
10         $articleres=db('article')->find($arid);
11         //访问一次这个方法,说明文章被访问一次,让文章的click字段值加1
12         db('article')->where('id','=',$arid)->setInc('click');
13         $cateres=db('cate')->find($articleres['cateid']);
14         $this->assign(array(
15             'articleres'=>$articleres,
16             'cateres'=>$cateres,
17         ));
18
19
20         return view();
21     }
22 }

视图

 1         <!--顶部通栏-->
 2         <script src='/jiehun/goto/my-65547.js' language='javascript'></script>
 3
 4         <div class="position"><a href="{:url('index/index')}}">主页</a> > <a href="{:url('cate/index',array('cateid'=>$cateres['id']))}">{$cateres.catename}</a> >  </div>
 5
 6         <div class="overall">
 7             <div class="left">
 8                 <div class="scrap">
 9                     <h1>{$articleres.title}</h1>
10                     <div class="spread">
11                         <span class="writor">发布时间:{$articleres.time|date='Y-m-d',###}</span>
12                         <span class="writor">编辑:{$articleres.author}</span>
13                         <span class="writor">标签:<a href='/jiehun/z97712.html'>聚餐</a></span>
14                         <span class="writor">热度:{$articleres.click}</script></span>
15                     </div>
16                 </div>
17
18                 <!--百度分享-->
19                 <script src='/jiehun/goto/my-65542.js' language='javascript'></script>
20
21                 <div class="takeaway">
22                     <span class="btn arr-left"></span>
23                     <p class="jjxq">{$articleres.desc}
24 </p>
25                     <span class="btn arr-right"></span>
26                 </div>
27
28                   <script src='/jiehun/goto/my-65541.js' language='javascript'></script>
29                 <!-- 文章主体 -->
30                 <div class="substance">
31                     {$articleres.content}
32                 </div>
33                 <!-- end文章主体 -->

八、给页面传不同的参数,就可以得到不同的页面

<div class="position"><a href="{:url('index/index')}}">主页</a> > <a href="{:url('cate/index',array('cateid'=>$cateres['id']))}">{$cateres.catename}</a> >  </div>

九、thinkphp标签带函数(比如传给页面的是时间戳,要通过在页面电泳date函数显示正常时间)

1 <span class="writor">发布时间:{$articleres.time|date='Y-m-d',###}</span>

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

thinkphp5项目--个人博客(五)相关推荐

  1. thinkphp5项目--个人博客(六)

    thinkphp5项目--个人博客(六) 项目地址 fry404006308/personalBlog: personalBlog https://github.com/fry404006308/pe ...

  2. 古文字识别助手与众包平台——项目博客五

    古文字识别助手与众包平台--项目博客五 背景: 由于本项目算法部分为使用python编写,所以需要在springboot中调用外部的python程序进行计算本项目算法评分模块. 在登录功能和社区功能的 ...

  3. 基础环境搭建——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(五)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  4. 订单支付和评论——基于Django框架的天天生鲜电商网站项目系列博客(十五)

    系列文章目录 需求分析--基于Django框架的天天生鲜电商网站项目系列博客(一) 网站框架搭建--基于Django框架的天天生鲜电商网站项目系列博客(二) 用户注册模块--基于Django框架的天天 ...

  5. springboot实战项目——个人博客系统

    1.项目介绍 1.1项目效果 博客首页 登录功能 注册功能 文章分类 文章归档 文章页面 发布文章 (集成富文本编译器) 1.2项目使用技术 前端: vue element-ui 后端: Spring ...

  6. 项目体系架构设计——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(四)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  7. 利用用户行为数据——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

  8. SpringBoot实现代码生成器——基于SpringBoot和Vue的后台管理系统项目系列博客(十)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  9. SpringBoot实现1对1、1对多、多对多关联查询——基于SpringBoot和Vue的后台管理系统项目系列博客(十八)

    系列文章目录 系统功能演示--基于SpringBoot和Vue的后台管理系统项目系列博客(一) Vue2安装并集成ElementUI--基于SpringBoot和Vue的后台管理系统项目系列博客(二) ...

  10. 实时推荐服务建设——基于Spark平台的协同过滤实时电影推荐系统项目系列博客(八)

    系列文章目录 初识推荐系统--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(一) 利用用户行为数据--基于Spark平台的协同过滤实时电影推荐系统项目系列博客(二) 项目主要效果展示--基 ...

最新文章

  1. 开发人员常用SVN命令
  2. linux minicom usb串口
  3. bzoj 1036 树的统计Count
  4. linux 磁盘簇,linux系统exec簇工作原理
  5. varchar和Nvarchar区别
  6. CSS基础——CSS复合选择器【学习笔记】
  7. java项目文档管理_基于jsp的文档管理系统-JavaEE实现文档管理系统 - java项目源码...
  8. python飞机大战项目概述需求_飞机大战需求分析报告.doc
  9. 2022年全网首发|大数据专家级技能模型与学习指南(胜天半子篇)
  10. 【专升本计算机】计算机权威复习题(基础知识、操作系统、计算机网络)
  11. 一年工作经验,两周的面试,拿到几个offer的面试经验总结
  12. flashfxp中文下载,5步掌握flashfxp中文下载软件的使用技巧
  13. 全文翻译 | 华为、北大、悉尼大学:最新视觉Transformer综述(2017-2020年)
  14. APS计划软件助纺织企业降低成本,提升效益
  15. git-lfs使用笔记
  16. 51node1006LCS
  17. linux一键脚本自动添加Title
  18. socket的五大误区
  19. Office365学习笔记—列表查询,删除条目,更新条目。
  20. mongodb安装失败看这里

热门文章

  1. 历年美赛赛题和特等奖论文集合,文中直接获取!!!
  2. linux -----各种颜色代表什么
  3. 毕业生论文必备!!让英文摘要不是难事
  4. oracle碎片整理
  5. windows10显示文件后缀名
  6. Mac磁盘格式化、分区教程
  7. c语言用循环转换单词首字母,用c++实现将文本每个单词首字母转换为大写
  8. Egret引擎基础教程II(EUI基础使用教程)
  9. 干细胞研究最新进展(2022年4月)
  10. vlan tag是做什么用的?