ThinkPHP如何在控制器中调用命令
前段时间因为业务需求,使用TP的command开发了几个模块,期间测试一下在控制器中调用命令的方式,发现一些问题记录一下
官方文档:
- <?php
- namespace app\index\controller;
- use think\Console;
- use think\Controller;
- class Index extends Controller
- {
- public function hello($name)
- {
- $output = Console::call('hello ' . $name);
- return $output->fetch();
- }
- }
实际测试中该方式不可用,仅能调用命令无法实现传参,经过测试如下调用即可:
- <?php
- namespace app\home\controller;
- use think\Console;
- class Index
- {
- public function index()
- {
- // 调用命令行的指令
- $output = Console::call('app:demo', ['--num', '10', 'kitty']);
- // 获取输出信息
- return $output->fetch();
- }
- }
Console::call
方法的第一个参数是指令名称,后面的第二个参数是一个数组,表示调用的参数, 参数与命令行输入相对应。
使用 Console::call
方法调用指令执行不会看到最终的输出结果,需要使用 fetch
方法获取输出信息,一旦发生错误,则会抛出异常。
作者:旧旧的 <393210556@qq.com> 解决问题的方式,就是解决它一次
ThinkPHP如何在控制器中调用命令的更多相关文章
- dev Gridcontrol单元格值格式化及在模板中调用命令
<dxg:GridColumn> <dxg:GridColumn.EditSettings> ...
- 在隐藏导航栏的控制器中,调用UIIMagePickerController,出现导航栏变透明的问题
在隐藏导航栏的控制器中,调用UIIMagePickerController,出现导航栏变透明的问题 解决办法 #pragma mark - UIImagePickerController Delega ...
- mvc Web api 如何在控制器中调用
关于如何调用 mvc Web api 的方法,网上一搜就是一大把,基本都是在前台jq中调用的,但是如何在后台调用呢? 本楼主做了一下测试,仅供参考. 先写一个简单的api,如下:[域1] namesp ...
- C/C++ 程序中调用命令行命令并获取命令行输出结果
在 c/c++ 程序中,可以使用 system()函数运行命令行命令,但是只能得到该命令行的 int 型返回值,并不能获得显示结果.例如system(“ls”)只能得到0或非0,如果要获得ls的执行结 ...
- thinkphp 的 Action 控制器中的系统常量总结
THINK_PATH // ThinkPHP系统目录 APP_PATH // 当前项目目录 APP_NAME // 当前项目名称 CONTROLLER_NAME // 当前控制器名称 MODULE_N ...
- 【ThinkPHP】API控制器中加入析构函数
<?php namespace app\api\controller; use think\Controller; class User extends Controller { public ...
- yii2在控制器中调用另一个控制器方法
Yii::$app->runAction(控制器/方法名);
- asp.net中调用命令行
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- QT中QProcess调用命令行的痛苦经历
在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了 ...
随机推荐
- File类的createNewFile()和mkdirs() mkdir()
createNewFile文件不存在则创建,存在则不创建并返回false,文件路径必须存在才可创建路径下的文件(注意它只能创建文件,即如果你给了/storage/emulated/0/hello/sn ...
- 洛谷 P2615 神奇的幻方 题解
每日一题系列day1 打卡 Analysis 水货模拟,不多说了 #include<iostream> #include<cstdio> #include<cstring ...
- C/C++ -- 判断字符串中存在中文
电脑系统中的英文字符串和中文字符最根本的区别就在于: 1.英文的 ASCII 码,其最高位为 0,占一个字节 注:英文的ASCII码范围是在0到127,二进制为(0000 0000 ~ 0111 11 ...
- P5431 【模板】乘法逆元2
洛谷题目链接 刚开始做乘法逆元还是有点懵逼的~ 以下式子都在模\(p\)意义下进行 我们把式子改一下,变成:\[\sum\limits_{i=1}^nk^i\times a_i^{-1}\] 我们先算 ...
- 爬虫(十六):scrapy爬取知乎用户信息
一:爬取思路 首先我们应该找到一个账号,这个账号被关注的人和关注的人都相对比较多的,就是下图中金字塔顶端的人,然后通过爬取这个账号的信息后,再爬取他关注的人和被关注的人的账号信息,然后爬取被关注人的账 ...
- 服务器之select
select select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数 解决1024以下客户端时使用select ...
- DBUtils的最基本的使用
背景 学习了如何连接数据库之后,发现里面进行查询的过程有点麻烦,因此使用DBUtils包来简化操作 配置环境 win10 jdk11 idea mysql8.0.13 jar包 连接数据库的包 c3p ...
- 走进JavaWeb技术世界6:Tomcat5总体架构剖析
本文以 Tomcat 5 为基础,也兼顾最新的 Tomcat 6 和 Tomcat 4.Tomcat 的基本设计思路和架构是具有一定连续性的. Tomcat 总体结构 Tomcat 的结构很复杂, ...
- excel怎么把一个sheet的 全部内容打印到一页纸上
参考 https://jingyan.baidu.com/article/5225f26b04005ee6fa090830.html
- export命令import命令
export命令import命令 export { name1, name2, …, nameN }; export { variable1 as name1, variable2 as name2, ...