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

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>  

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值