zoukankan      html  css  js  c++  java
  • thinkphp5项目--个人博客(五)

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

    项目地址

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

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

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

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

    后台数据

    数据库数据

    前台数据

    下面讲如何操作

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

     1 <?php
     2 namespace appindexcontroller;
     3 
     4 use thinkController;
     5 use thinkDb;
     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 appindexcontroller;
     3 
     4 use appindexcontrollerBase;
     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 appindexcontroller;
     3 
     4 use appindexcontrollerBase;
     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>  

  • 相关阅读:
    Math 方法的使用
    敏捷开发 故事墙
    利用OpenPOP开源组件实现接收电子邮件功能
    JDBC连接MySql数据库
    【转】"已成功与服务器建立连接,但是在登录前的握手期间发生错误"问题解决方案
    【转】如何让虚拟目录里面的webconfig不继承网站
    【转】JavaScript控制图片放大缩小
    【Wonder原创】CheckBoxList实现单选
    【杂记】ASP.Net Web开发
    【Wonder整理】防止重复提交并弹出半透明对话框
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8800727.html
Copyright © 2011-2022 走看看