thinkphp5.1 配置使用

1,安装



//先切换成阿里云镜像,速度会快。
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
//composer config --unset repos.packagist  安装完后可以取消切换的镜像的命令
//安装tp5.1的版本
composer create-project topthink/think=5.1.* tp5 --prefer-dist

2,在文件夹application\index\controller 中的Index.php文件是首页控制器

3,数据库操作:

如果要在控制器中直接调用数据库,需要到config文件夹下找到database.php 文件,填写数据库信息,之后在控制器如下调用数据库

1
2
3
4
5
6
7
8
9
10
11
12
namespace app\index\controller;
use think\Db;
 
class Index
{
    public function index()
    {
        $Db = new Db;  
    $data=Db::query('select * from dz_lock where gid=?',[7]);
    print_r($data);
    }   
}

 4,使用模型

在application\index 文件夹下创建model文件夹,并新建文件Lock.php ,内容如下

复制代码
namespace app\index\model;

use think\Model;

class Lock extends Model
{    
    protected $pk = 'id'; //主键    
        protected $table = 'dz_lock'; ///表名称    
     
}
复制代码

 

创建完成后修改控制器文件为如下代码进行调用模型

1
2
3
4
5
6
7
8
9
10
11
12
13
namespace app\index\controller;
use app\index\model\Lock;
 
class Index
{
    public function index()
    {
        $lk=new Lock();    
     $user=$lk->where('id','>', 7)->find();  //只获取1条记录
     //$user=$lk->where('id','>', 7)->select(); //获取所有符合条件的记录   
     print_r($user);
    }   
}

 5, 使用模板

如果使用视图来调用模板,需要继承Controller类,用如下方式进行调用

复制代码
namespace app\index\controller;
use app\index\model\Lock;
use think\Controller;

class Index  extends Controller
{
    public function index()
    {
        $lk=new Lock();        
     $user=$lk->where('id','>', 7)->select(); 
        $this->assign("user",$data);
        return $this->fetch('index');
    }    
}    
复制代码

并且需要在application\index\view\index 文件夹下创建index.html为模板 

模板内容如下

1
2
3
{volist name="user" id="vo"}
    <a href="">{$vo.lock_name}</a>
 {/volist}

  

6,如果修改了config下面template.php 的模板路径view_path参数,需要按路径进行模板创建并使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
return [
    // 模板引擎类型 支持 php think 支持扩展
    'type'         => 'Think',
    // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
    'auto_rule'    => 1,
    // 模板路径
    'view_path'    => '',
    // 模板后缀
    'view_suffix'  => 'html',
    // 模板文件名分隔符
    'view_depr'    => DIRECTORY_SEPARATOR,
    // 模板引擎普通标签开始标记
    'tpl_begin'    => '{',
    // 模板引擎普通标签结束标记
    'tpl_end'      => '}',
    // 标签库标签开始标记
    'taglib_begin' => '{',
    // 标签库标签结束标记
    'taglib_end'   => '}',
   'view_path'    => '../template/'
];

7,图片上传功能,在控制器Index.php增加方法

复制代码
public function upload(){  
    $file = request()->file('image'); 
    if($file){
        $info = $file->move( 'D:\Visual-NMP-x64\www\wp\tp5\public\uploads');
        if($info){      
            echo $info->getSaveName(); 
        }else{            
            echo $file->getError();
        }
    }    
    return $this->fetch('upload');
    }
复制代码

在模板文件中进行设置,注意标红部分。当前模板文件是\template\index\upload.html

复制代码
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title> </title>
</head>
<body>  

<form action="/tp5/public/index.php/index/Index/upload" enctype="multipart/form-data" method="post">
<input type="file" name="image" /> <br> 
<input type="submit" value="上传" /> 
</form> 

</body>
</html>
复制代码

 

 

8,使用杂项, 如下操作,进入tp5的根目录,命令行下执行安装更新

1
composer require topthink/think-captcha 2.*<br>composer require topthink/think-image

正常安装后,在模板文件中可以直接调用验证码

1
<img src="{:captcha_src()}" alt="captcha" /></div>

在控制器中可以调用image类,这里的b.jpg在public目录中

复制代码
namespace app\index\controller;
use app\index\model\Lock;
use think\Controller;
use think\Image;

class Index  extends Controller
{
    public function index()
    {
         $image = Image::open('b.jpg');        
        $width = $image->width(); 
        echo $width;


        $lk=new Lock();        
      $user=$lk->where('id','>', 7)->select(); 
        $this->assign("user",$data);
        return $this->fetch('index');
    }    
}                     
复制代码

 

 

 

 

 

posted @   fsl  阅读(313)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示