在代码里面可以直接调用执行命令行的某个命令,例如:
namespace app\\index\\controller; use think\\Console;
class Index
{
public function index()
{
//调用命令行的指令
$output = Console::call('make:model',\['index/Blog'\]);
return $output->fetch();
}
}
Console::call方法的第一个参数就是指令名称,后面的第二个参数是一个数组,表示调用的参数。
demo
如果我们要创建一个 模块的话,应该是:
Console::call('build',\['--module', 'demo'\]);
当访问
[http://tp5.com](http://tp5.com/)
页面会输出
Model created successfully.
可以在
application/index/model/
目录下面发现已经生成了一个
模型文件。
当我们再次刷新页面的话,会看到页面输出
Blog
Model already exists!
表示模型已经创建过了,无需再次创建。
使用Console::call方法调用指令执行不会看到最终的输出结果,需要使用fetch方法获取输出信息, 一旦发生错误,则会抛出异常。
- 目 录
- 零、序言
- 概述
- 目前章节完成情况(
- 表示已经完成)
- 阅读须知
- ThinkPHP V5.0 官方权威QQ群
- 简介
- 官网下载
- Composer安装和更新
- Git下载和更新
- [ Github ]
- [ 码 云 ]
- [ Coding ]
- 目录结构
- 运行环境
- 入口文件
- 调试模式
- 控制器
- 视图
- 读取数据
- 总结
- 二、URL和路由
- URL访问
- 参数传入
- 隐藏index.php
- 定义路由
- 完整匹配
- 闭包定义
- 设置URL分隔符
- 路由参数
- 变量规则
- 路由分组
- 复杂路由
- 生成URL地址
- 总结
- 三、请求和响应
- 请求对象
- 传统方式调用
- 继承think\Controller
- 自动注入请求对象
- 动态绑定属性
- 使用助手函数
- 请求信息
- 获取请求变量
- 获取请求参数
- 获取URL信息
- 获取当前模块/控制器/操作信息
- 获取路由和调度信息
- 响应对象
- 自动输出
- 手动输出
- 页面跳转
- 页面重定向
- 总结
- 四、数据库
- 准备
- 数据库配置
- 原生查询
- 创建(create)
- 删除(delete)
- 切换数据库
- 参数绑定
- 查询构造器
- 链式操作
- 事务支持
- 五、查询语言
- 查询表达式
- 批量查询
- 快捷查询
- 视图查询
- 闭包查询
- 使用Query对象
- 获取数值
- 获取列数据
- 聚合查询
- 字符串查询
- 时间(日期)查询
- 分块查询
- 六、模型和关联
- (1)模型定义
- 模型定义
- 设置数据表
- 设置完整数据表:
- (2)基础操作
- 新增数据
- 批量新增
- 查询数据
- 数据列表
- 更新数据
- 删除数据
- (3)读取器和修改器
- 读取器
- 修改器
- (4)类型转换和自动完成
- 类型转换
- 自动时间戳
- 自动完成
- (5)查询范围
- 查询范围
- 全局查询范围
- (6)输入和验证
- 表单提交
- 表单验证
- 错误提示
- 自定义验证规则
- 控制器验证
- (7)关联
- 基本定义
- 一对一关联
- 关联定义
- 关联写入
- 关联查询
- 关联更新
- 关联删除
- 一对多关联
- 关联定义
- 关联新增
- 关联查询
- 关联更新
- 关联删除
- 多对多关联
- 关联定义
- 关联新增
- 关联删除
- 关联查询
- (8)模型输出
- 输出数组
- 隐藏属性
- 指定属性
- 追加属性
- 输出JSON
- 七、视图和模板
- 模板输出
- 分页输出
- 公共模板
- 模板定位
- 模板布局
- 标签定制
- 输出替换
- 渲染内容
- 助手函数
- 八、调试和日志
- 第一式:未雨绸缪——页面Trace
- 第二式:初见端倪——异常页面
- 第三式:拨云见日——断点调试
- 变量调试输出
- 变量调试并中断输出
- 控制台输出
- 第四式:欲穷千里——日志分析
- 第五式:运筹帷幄——远程调试
- 九、API开发
- API版本
- 异常处理
- RESTFul
- 请求测试
- Postman
- 请求伪装
- API调试
- 环境安装
- 浏览器设置
- 应用配置
- 远程调试
- 安全建议
- 十、命令行工具
- 查看指令
- 生成模块
- 生成文件
- 生成类库映射文件
- 生成路由缓存文件
- 生成数据表字段缓存文件
- 指令扩展示例
- 命令行调试
- 命令行颜色支持
- 调用命令
- 十一、扩展
- 函数扩展
- 类库扩展
- 驱动扩展
- Composer扩展
- 十二、杂项
- Session
- 初始化
- 读取
- 操作
- 助手函数
- 模板输出
- 驱动
- Session示例
- Cookie
- 初始化
- 读取Cookie
- 模板输出
- 操作
- 设置
- 清空
- 验证码
- 安装类库
- 验证码显示
- 验证码检测
- 验证码配置
- 改变字体大小和验证码长度
- 同时使用多个验证码
- 文件上传
- 控制器定义
- 上传文件验证
- 文件保存规则
- 多文件上传
- 后续文件操作
- 图像处理
- 安装扩展
- 示例代码
- 控制器定义
- 模板定义
- 示例演示
- 读取图片
- 图片裁剪
- 生成缩略图
- 图像翻转
- 图片旋转
- 添加水印
- 文字水印
- 图片保存
- 单元测试
- 安装扩展
- 运行测试
- 添加单元测试用例
- 定义单元测试
- 附录
- A、常见问题集
- 为什么5.0取消了很多常量?
- 为啥单字母函数去掉了?
- 数据库查询和模型怎么用?
- 关于配置参数的问题
- 怎么才能在控制器中正确的输出模板
- 没有创建模型类怎么查询?
- 原来3.2版本的模型的
- 方法应该如何使用?
- 5.0怎么没有编译缓存了?
- 为什么写入数据的时候不会自动去除数据库没有的字段?
- 为什么不能识别驼峰法命名的控制器
- 的类库定义可以带上后缀么?
- 怎么实现模板输出的特殊字符串替换?
- 5.0的fetch和display方法有什么区别?
- 为什么Session无法获取?
- 为什么无法接收表单数组类型数据?
- 为什么模型的查询返回的都是对象而不是数组
- 为什么 类没有了?
- 原来的模板标签怎么不能用了?
- 5.0模型的
- 方法如何过滤非数据表字段值?
- 为什么路由变量用 获取不到?
- 如何关闭未定义变量的错误提示?
- 如何获取当前的模块、控制器和操作名
- 如何让生成的URL地址带上index.php
- 模型类的
- 属性和
- 模型的save方法调用后怎么获取自增主键的值?
- B、3.2和5.0区别
- URL和路由
- 请求对象和响应对象
- 模块和控制器
- 数据库
- 3.2版本
- 5.0版本
- 模型
- 3.2版本
- 5.0版本
- 自动验证和自动完成
- 异常
- 调试和日志
- 常量
- 函数
- C、助手函数
- 加载和实例化
- 参数:
- 示例:
- 参数:
- 示例:
- 参数:
- 示例:
- 示例:
- 示例:
- 示例:
- 示例:
- 示例:
- 返回值:示例:
- 参数:
- 数据操作
- 参数:
- 示例:
- 示例:
- 示例:
- 示例:
- 示例:
- 示例:
- 参数:
- 示例:
- 示例:
- 示例:
- 示例:
- 参数:
- 参数:
- 参数:
- 参数:
- 参数:
- 示例:
- 示例:
- 示例:
- 示例:
- 示例:
