tp5 入门项目之 blog

本博客为学习tp的练习项目的笔记。方便日后查找需要。

------------------------------------------------------------------------------------------------------

{if condition="empty($auders->toArray()['data'])"}暂无相关数据!{/if}

---------------------------------------------------------------------------------------------------------------------------------

一 开发准备,环境搭建

1 phpstudy中站点域名配置中配置项目信息

自动生成的配置


    DocumentRoot "E:\myphp_www\PHPTutorial\WWW\xl_blog\public"
    ServerName my.blog.com
    ServerAlias
 
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
     Require all granted
 

2 下载 tp5源码 完全开发手册 跟快速开发手册。tp5项目部署至服务器下。访问域名,可以得到笑脸。说明配置成功。

二 静态文件引入

1 前后台静态资源文件引入

把资源文件放到 public/static 文件目录下

--------------------------------------------------------

index入口文件中定义 相关路径信息

//定义网站域名

define('WEB_URL', 'http://my.blog.com/');

//定义前台 js css font 路径

define('HOME_STYLE',WEB_URL.'static/home/');

--------------------------------------------------------

tp5 入门项目之 blog_第1张图片

index 模块中 创建本模块配置文件 config.php

配置路径信息,以便在模板文件中使用。配置信息如下

return [

'view_replace_str' => [

"__HOMECSS__" => HOME_STYLE.'style/',

],

];

tp5 入门项目之 blog_第2张图片

----------------------------------------------------------

tp5 入门项目之 blog_第3张图片

index 模块中,分离出公共的头部 侧边栏 尾部信息

公共文件中使用刚才配置的变量,引入静态资源文件

------------------------------------------------------------------------

tp5 入门项目之 blog_第4张图片

模板中调用刚才创建的公共模块数据

--------------------------------------------------------

http://my.blog.com/index/lst

http://my.blog.com/index/article

http://my.blog.com/index/index 进行访问

tp5 入门项目之 blog_第5张图片

 --------------------------------------------------

文件上传

if($_FILES['pic']['tmp_name']){

$file = request()->file('pic');

$info = $file->move(ROOT_PATH . 'public' . DS . 'static/uploads');

$data['pic']='/uploads/'.$info->getSaveName();

}

----------------------------------------------------

模板文件中 volist 循环

模板文件中 if 判断

模板文件中 时间戳转换

tp5 入门项目之 blog_第6张图片

 ---------------------------------------------------

验证码的具体实现

 tp5 入门项目之 blog_第7张图片

 -------------------------------------------------------------

简单的权限拦截

tp5 入门项目之 blog_第8张图片

tp5 入门项目之 blog_第9张图片

 ------------------------------------------------------------------------------

模板中 时间戳转化成时间

{$person.createtime|date='Y-m-d',###}

-----------------------------------------------------------------------------------

公共函数库,其中的方法可以直接在本模块中调用

tp5 入门项目之 blog_第10张图片

--------------------------------------------------------

admin模块下 配置文件

tp5 入门项目之 blog_第11张图片

-------------------------------------------------------

数据校验

namespace app\admin\validate;

use think\Validate;

class Admin extends Validate

{

protected $rule = [

'username' => 'require|max:25|unique:admin',

'password' => 'require',

];

 

protected $message = [

'username.require' => '管理员名称必须填写',

'username.max' => '管理员名称长度不得大于25位',

'username.unique' => '管理员名称不得重复',

'password.require' => '管理员密码必须填写',

 

];

 

protected $scene = [

'add' => ['username'=>'require|unique:admin','password'],

'edit' => ['username'=>'require|unique:admin'],

];

}

文件中调用校验规则

    $id=input('id');

    $cates=db('cate')->find($id);

    if(request()->isPost()){

        $data=[

            'id'=>input('id'),

            'catename'=>input('catename'),

        ];

            $validate = \think\Loader::validate('cate');

        if(!$validate->scene('edit')->check($data)){

             $this->error($validate->getError()); die;

            }

-------------------------------------------

搜索页面分页的实现

public function index()

{

$keywords=input('keywords');

if($keywords){

$map['title']=['like','%'.$keywords.'%'];

$searchres=db('article')

->where($map)->order('id desc')

->paginate($listRows = 3, $simple = false, $config = [

'query'=>array('keywords'=>$keywords),

]);

$this->assign(array(

'searchres'=>$searchres,

'keywords'=>$keywords

));

}else{

$this->assign(array(

'searchres'=>null,

'keywords'=>'暂无数据'

));

}

 

return $this->fetch('search');

}

-------------------------------------

入口文件

tp5 入门项目之 blog_第12张图片

你可能感兴趣的:(tp5)