php - Yii2调用控制台控制器/后端控制器中的动作
问题描述
我批评了控制器
站点地图控制器.php
用行动
指数
在 Yii2 的控制台文件夹中
,我可以从命令行运行它。
但我需要从后端/控制器文件夹的控制器运行它。这意味着我应该从 Yii2 后端控制器操作运行控制器 SiteMapController.php 的索引操作。这是我的测试代码,但它不起作用。
后端/控制器/BlogController.php
private function runSiteMapGenerate(){
$cr = new ConsoleRunner(['file' => '@console']);
$cr->run('site-map');
}
我尝试了两个脚本
"vova07/yii2-console-runner-extension": "*",
"tebazil/yii2-console-runner": "^0.0.0"
但它无助于运行索引
我别无选择。
解决方案
chdir
使用并运行下一个yii 目录shell_exec
。使用它,您可以使其变得简单,无需安装任何扩展。
chdir('../yiifolder'); //folder that contains yii
$output = shell_exec('php yii migrate');
var_dump($output);
这是在我的服务器上测试的。
输出:
string 'Yii Migration Tool (based on Yii v2.0.6)
No new migration found. Your system is up-to-date.
' (length=93)
推荐阅读
- ios - 何时更新 tableView?
- google-bigquery - GoolgeBigQuery - 超出速率限制
- python-3.x - 为什么矩形选择器不能在绘图内移动
- python - 在过滤数据框(census.csv)中的多列时提取前 3 个值
- dom - 更新 SVG 元素的转换时,Firefox 会移动剪辑路径,而 Chromium 不会 - 这是正确的,什么是可移植的解决方案?
- c# - HttpClient - 远程主机强行关闭现有连接 - IIS 发布的 Web 应用程序
- java - Spring Post 方法与关系数据库(RestApi)
- python-3.x - 如何使用 Tkinter 在屏幕上显示游戏?
- android - 使用轮播管理器库时回收站视图未更新
- ios - View Controller not conforming to protocol, even though all methods are implemented