thinkphp5.0学习笔记(一)基础知识与URL访问
1.目录结构:

其中thinkphp子目录是框架核心目录
thinkphp结构:

2.入口文件
默认自带的入口文件位于public/index.php
应用目录为application,其结构:

index模块目录结构:

Index为控制器文件;
3.控制器:
找到index模块的Index控制器;

找到index模块的Index控制器

去把返回值变为helloworld

访问:

看到输出结果!
4.数据的读取:
数据库:

需要在应用的数据库配置文件application/database.php中添加数据库的连接信息如下:
<?php
return [
'type' => 'mysql', // 数据库类型
'hostname' => '127.0.0.1', // 服务器地址
'database' => 'outengcms', // 数据库名
'username' => 'root', // 用户名
'password' => 'root', // 密码
'hostport' => '3306', // 端口
'dsn' => '', // 连接dsn
'params' => [], // 数据库连接参数
'charset' => 'utf8', // 数据库编码默认采用utf8
'prefix' => 'think_', // 数据库表前缀
'debug' => true, // 数据库调试模式
'deploy' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'rw_separate' => false, // 数据库读写是否分离 主从式有效
'master_num' => 1, // 读写分离后 主服务器数量
'slave_no' => '', // 指定从服务器序号
'fields_strict' => true, // 是否严格检查字段是否存在
'resultset_type' => 'array', // 数据集返回类型 array 数组 collection Collection对象
'auto_timestamp' => false, // 是否自动写入时间戳字段
'sql_explain' => false, // 是否需要进行SQL性能分析
];
接下来,我们修改下控制器方法,添加读取数据的代码:
<?php
namespace app\silingling\controller;
use think\Controller;
//
use think\Db;
class Index extends Controller
{ public function _empty($name)
{
return $this->fetch('/Public/404');
} public function tianjia($code='')
{ if(!captcha_check($code)) {
$this->error('验证码错误');
}
//
// echo 111111111;
////添加数据库1
else { $naa = $_POST["naa"];
$tel = $_POST["tel"];
//留言联系我们
Db::table('think_shenqing')
->data(['naa'=>$naa,'tel'=>$tel])
->insert();
$this->success('添加成功','index');
} //
//
} }
控制器写好后,直接修改模版文件,用标签显示就可以了;
5.URL访问
ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作,下面是一个标准的URL访问格式:
http://serverName/index.php/模块/控制器/操作
应用下面的子目录称之为模块,模块全部采用小写命名
应用的index模块的Index控制器定义如下:
<?php
namespace app\silingling\controller;
use think\Controller;
//
use think\Db;
class Index extends Controller
{ public function _empty($name)
{
return $this->fetch('/Public/404');
}
public function index()
{ return $this->fetch('/Public/index'); }
public function index1()
{
$list=Db::name('auth_rule')->where('sort', 55)->select(); $this->assign('list',$list);
// liucheng
$list3 = Db::name('article')->where('writer',22)->select();
$this->assign('list3',$list3);
//chaxun
$list211 = Db::name('haoma')->where('code'>0)->select();
$this->assign('list211',$list211);
return $this->fetch('/Public/index1'); }
}
如果我们直接访问入口文件index,因为我们没有指定url,所以系统会访问默认模块(index)下面的默认控制器(Index)的默认操作方法(index),
http://localhost/index.php http://localhost/index.php/index/index/index
这两个连接等效!
应用的index模块的Index控制器定义如下:
<?php
namespace app\lianxi\controller;
use think\Controller;
use think\Db;
class Index extends Controller
{ public function _empty($name)
{
return $this->fetch('/Public/404');
}
public function index(){
return 'index';
} public function hello($name = 'World'){
return 'Hello,' . $name . '!';
}
}
如果我们直接访问入口文件的话,默认走的是index方法,
如果要访问控制器的hello方法,则需要使用完整的URL地址

输出的是:

由于name参数为可选参数,连接这样输:
http://localhost/index.php/lianxi/Index/hello/name/xuanxuan
输出:

6.模板渲染输出:
输出当前模块下的index模板:
// 指定模板输出
$this->display('index');
输出User模块下面的read模板:
$this->display('User:read');
输出模板时指定编码和类型:
// 表示输出XML页面类型(注意:这里可以输出网站地图sitemap.xml哦~~)
$this->display('read', 'utf-8', 'text/xml');
总结一下,ThinkPHP的模板渲染可以设置编码类型及输出文件的类型!
thinkphp5.0学习笔记(一)基础知识与URL访问的更多相关文章
- Spring4.0学习笔记(1) —— 基础知识
1.基本定义 IOC: 其思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了 IOC之后,容器主动将资源推送给它所管理的组件,组件索要做 ...
- MyBatis:学习笔记(1)——基础知识
MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...
- C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)
一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字 ...
- Quartz学习笔记:基础知识
Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...
- C#学习笔记(基础知识回顾)之值传递和引用传递
一:要了解值传递和引用传递,先要知道这两种类型含义,可以参考上一篇 C#学习笔记(基础知识回顾)之值类型和引用类型 二:给方法传递参数分为值传递和引用传递. 2.1在变量通过引用传递给方法时,被调用的 ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
- .net学习笔记---xml基础知识
一.XML简介 XML是一种标记语言,用于描述数据,它提供一种标准化的方式来来表示文本数据.XML文档以.xml为后缀.需要彻底注意的是XML是区分大小写的. 先从一个简单的XML例子来了解下xml基 ...
- thinkphp5.0学习笔记
2019-11-11学习笔记 安装TP5.0 a)源代码包下载 在thinkphp官网下载(www.thinkphp.cn)下载 完整版本的TP5.0 b) composer 安装 切换到网站的根目录 ...
- Docker的学习笔记(一)基础知识
概述 本人最近在学习docker相关的知识,既是工作本身的需要也是自己对技术的追求的必要,以后我也会推出容器相关的随笔,既可以增长自己的知识,也可以和读者广泛交流,岂不乐乎?话不多说.第一篇先介绍do ...
随机推荐
- 阿里云服务器重启出现An error occurred 如何处理
最近网站重启阿里云服务后,出现 An error occurred, An error occurred. Sorry, the page you are looking for is current ...
- 【学习总结】快速上手Linux玩转典型应用-第7章-WebServer安装和配置讲解
课程目录链接 快速上手Linux玩转典型应用-目录 目录 1. Apache的安装 2. Apache的虚拟主机配置及伪静态操作 3. Nginx的基本操作 4. Nginx伪静态的实现 5. 实例演 ...
- Dva框架从初识到上手
引言 最近工作需要用dva框架,同事帮我培训了一下,有一点点认识,在此总结. 当然,以后对dva可能会了解更透彻,文章会不断更新的. 初识 开始看架构代码,没有看文档的时候,不知道里面的几个关键字 ...
- TFServering和docker
nvidia-docker安装:https://github.com/NVIDIA/nvidia-docker nvidia-docker的基本操作:https://blog.csdn.net/pan ...
- IDEA设置类和方法的注释
类注释 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #pa ...
- Pycharm中Matplotlib图像不在弹出独立的显示窗口
File | Settings | Tools | Python Scientific | Show plots in toolwindow 如图, 取消勾选此时,在执行就会在独立的窗口中弹出Matp ...
- 【长期计划】Atcoder题目泛做
之前学长跟我说的是700-的应该都能自己做? 然后1000-的应该都能有一定的思路? 记不清了 但总之是要智力康复一下 又加上文化课比较紧 所以这个大概就会是长期计划了 ————————————分鸽线 ...
- ubuntu16.04 下安装jdk
1. 在/usr/lib目录下新建jdk mkdir jdk 2. 执行文件移动 sudo mv ./resource/jdk-8u191-linux-x64.tar. ...
- Nginx与Lua开发
1.Lua及基础语法 Nginx与Lua环境 场景:用Nginx结合Lua实现代码的灰度发布 1.Lua 是一个简洁.轻量.可扩展的脚本语言 2.Nginx+Lua优势 充分的结合Nginx的并发处理 ...
- [BZOJ3527][ZJOI2014]力:FFT
分析 整理得下式: \[E_i=\sum_{j<i}{\frac{q_i}{(i-j)^2}}-\sum_{j>i}{\frac{q_i}{(i-j)^2}}\] 假设\(n=5\),考虑 ...