首页 > 解决方案 > 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"

但它无助于运行索引

我别无选择。

标签: phpcommand-lineyii2consolesitemap

解决方案


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)

推荐阅读