thinkphp5项目--个人博客(五)
thinkphp5项目--个人博客(五)
项目地址
fry404006308/personalBlog: personalBlog
https://github.com/fry404006308/personalBlog
后台操作完成的差不多了,下面开始前台操作
一、数据库数据分配到前台
在后台设置好的数据分配到前台
后台数据

数据库数据

前台数据

下面讲如何操作
控制器中得到数据并分配数据
<?php
namespace app\index\controller; use think\Controller;
use think\Db;
class Index extends controller
{
public function index()
{
//得到数据,并且分配
$cateres = Db::name('cate')->order('id asc')->select();
$this->assign('cateres',$cateres); return view();
}
}
视图页面显示数据
{volist name="cateres" id="value"}
<a href="{:url('cate/index',array('cateid'=>$value['id']))}" rel='dropmenu209'>{$value.catename}</a>
{/volist}
可以写一个基类,然后其它类继承这个基类来完成对数据的分配。
二、文章的分类显示


之前的页面传递的数据
<a href="{:url('index/index')}" rel='dropmenu209'>首页</a>
{volist name="cateres" id="value"}
<a href="{:url('cate/index',array('cateid'=>$value['id']))}" rel='dropmenu209'>{$value.catename}</a>
{/volist}
控制器
public function index()
{
$cateid=input('cateid');
$articleres=db('article')->where(array('cateid'=>$cateid))->paginate(1);
$this->assign('articleres',$articleres);
return view();
}
视图
<div class="left">
{volist name="articleres" id="value"}
<div class="xnews2">
<div class="pic">
<a target="_blank" href="20160920156216.html">
<img src="{if condition="$value['pic'] neq '' "}__IMG__{$value.pic} {else /}__PUBLIC__/images/error.png{/if} " alt="{$value.title}"/>
</a>
</div>
<div class="dec">
<h3><a target="_blank" href="20160920156216.html">{$value.title}</a></h3>
<div class="time">发布时间:{$value.time|date="Y-m-d",###}</div>
<p>{$value.desc}</p>
<div class="time"><a href='z97712.html'>聚餐</a> </div>
</div>
</div>
{/volist}
<div class="pages">
<div class="plist" >
{$articleres->render()}
</div>
</div>
</div>
三、文章浏览量自动增加

每访问一次这个方法就会让这个文章的访问量自动增加一次
<?php
namespace app\index\controller; use app\index\controller\Base;
class Article extends Base
{
public function index()
{
$arid=input('arid');
$articleres=db('article')->find($arid);
//访问一次这个方法,说明文章被访问一次,让文章的click字段值加1
db('article')->where('id','=',$arid)->setInc('click');
$cateres=db('cate')->find($articleres['cateid']);
$this->assign(array(
'articleres'=>$articleres,
'cateres'=>$cateres,
)); return view();
}
}
thinkphp手册参考
自增或自减一个字段的值
setInc/setDec 如不加第二个参数,默认值为1 // score 字段加 1
Db::table('think_user')
->where('id', 1)
->setInc('score');
// score 字段加 5
Db::table('think_user')
->where('id', 1)
->setInc('score', 5);
// score 字段减 1
Db::table('think_user')
->where('id', 1)
->setDec('score');
// score 字段减 5
Db::table('think_user')
->where('id', 1)
->setDec('score', 5);
四、mysql默认初始值
改紫色框框的位置,而不是下面的zerofill

五、多个数据需要分配到页面的时候,可用数组方式
$this->assign(array(
'articleres'=>$articleres,
'cateres'=>$cateres,
));
六、别人网站上面的效果能完全弄下来
CSS和JS的话可以直接弄下来,打开网站源代码点CSS和JS的链接,就可以全部弄下来,或者直接用在线的,link地址就写他们网站就好
就是你看到的源代码的部分是已经执行过逻辑的部分了,所以逻辑部分你是看不到的,比如说php逻辑部分。
七、article部分完成

控制器
<?php
namespace app\index\controller; use app\index\controller\Base;
class Article extends Base
{
public function index()
{
$arid=input('arid');
$articleres=db('article')->find($arid);
//访问一次这个方法,说明文章被访问一次,让文章的click字段值加1
db('article')->where('id','=',$arid)->setInc('click');
$cateres=db('cate')->find($articleres['cateid']);
$this->assign(array(
'articleres'=>$articleres,
'cateres'=>$cateres,
)); return view();
}
}
视图
<!--顶部通栏-->
<script src='/jiehun/goto/my-65547.js' language='javascript'></script> <div class="position"><a href="{:url('index/index')}}">主页</a> > <a href="{:url('cate/index',array('cateid'=>$cateres['id']))}">{$cateres.catename}</a> > </div> <div class="overall">
<div class="left">
<div class="scrap">
<h1>{$articleres.title}</h1>
<div class="spread">
<span class="writor">发布时间:{$articleres.time|date='Y-m-d',###}</span>
<span class="writor">编辑:{$articleres.author}</span>
<span class="writor">标签:<a href='/jiehun/z97712.html'>聚餐</a></span>
<span class="writor">热度:{$articleres.click}</script></span>
</div>
</div> <!--百度分享-->
<script src='/jiehun/goto/my-65542.js' language='javascript'></script> <div class="takeaway">
<span class="btn arr-left"></span>
<p class="jjxq">{$articleres.desc}
</p>
<span class="btn arr-right"></span>
</div> <script src='/jiehun/goto/my-65541.js' language='javascript'></script>
<!-- 文章主体 -->
<div class="substance">
{$articleres.content}
</div>
<!-- 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函数显示正常时间)
<span class="writor">发布时间:{$articleres.time|date='Y-m-d',###}</span>
thinkphp5项目--个人博客(五)的更多相关文章
- thinkphp5项目--个人博客(七)
thinkphp5项目--个人博客(七) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(四)
thinkphp5项目--个人博客(四) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(三)
thinkphp5项目--个人博客(三) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(一)
thinkphp5项目--个人博客(一) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(八)
thinkphp5项目--个人博客(八) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(六)
thinkphp5项目--个人博客(六) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- thinkphp5项目--个人博客(二)
thinkphp5项目--个人博客(二) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...
- RSP小组——团队冲刺博客五
RSP小组--团队冲刺博客五 冲刺日期:2018年12月17日 前言 周末的结束,我们并没有完全的休息,对于这个项目,以我们的实力还是需要花费更多的时间. 各成员今日(12.17)完成的任务 马瑞蕃由 ...
- 2015-2016-2 《Java程序设计》项目小组博客
2015-2016-2 <Java程序设计>项目小组博客 1451 完+美 java项目 守望先疯 JavaGroup 07_10_20_22 FromBottomToTop L.G.Su ...
随机推荐
- Ubuntu系统的Redis安装配置
Ubuntu系统的Redis安装配置 一. 安装Redis: 在Ubuntu系统下安装Redis数据库有两种方式: 方式一:下载最新的Redis版本(tar.gz格式),解压安装.操作如下: ...
- 三种SVM的对偶问题
一.SVM原问题及要变成对偶问题的解决办法 对于SVM的,我们知道其终于目的是求取一分类超平面,然后将新的数据带入这一分类超平面的方程中,推断输出结果的符号,从而推断新的数据的正负. 而求解svm分类 ...
- ThinkPHP5.0框架开发--第10章 TP5.0验证器
ThinkPHP5.0框架开发--第10章 TP5.0验证器 第10章 TP5.0验证器 ======================================= 今日学习 1.验证器 1) 控 ...
- RAC连接时的2种方式Connect Time Failver和taf
1. Client-side Connect Time Failover 在客户端的tnsname中配置多个地址,当用户连接时会按照次序尝试各个地址,直到连接成功,连接好后,不再检测地址是否可用,如 ...
- Eclipse里Tomcat报错:Document base ……does not exist or is not a readable directory(图文详解)
问题描述: 严重: Error starting static Resourcesjava.lang.IllegalArgumentException: Document base D:\Code\M ...
- [转]m3u8直播测试地址
http://www.cnblogs.com/yuandaozhe/p/5755453.html 调试m3u8的时候需要测试地址 找了几个,备用一下 安徽卫视 http://stream2.ahtv. ...
- 网页字体助手 WebFont Helper
网页字体助手 是 Windows 平台离线的网页字体生成辅助工具.核心功能,采用 python 编写. WebFont Helper 功能特色 生成字体子集(即提取用到的字符生成字体,或者大家所说的字 ...
- Mysql表引擎的切换
转换MYSQL表的引擎 1.方法一:Alter table 将1个表的引擎修改为另一个引擎最简单的方法是使用Alter table语句. 下面的语句将myTable的引擎修改为InnoDB mysql ...
- div控制最小高度又自适高度
div控制最小高度又自适高度我们在用div布局的时候经常会遇到这样的一种情况:我们需要设置一个div的高度,当里面的东西超过这个高度时,让这个容器自动被撑开,也就是自适应高度.当里面的信息很少时候,我 ...
- Hadoop_MapReduce中Mapper类和Reduce类
在权威指南中,有个关于处理温度的MapReduce类,具体如下: 第一部分:Map public class MaxTemperatureMapper extends MapReduceBase im ...