<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace app\commands;
use yii\console\Controller;
use yii\console\ExitCode;
/**
* This command echoes the first argument that you have entered.
*
* This command is provided as an example for you to learn how to create console commands.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
class HelloController extends Controller
{
/**
* This command echoes what you have entered as the message.
* @param string $message the message to be echoed.
* @return int Exit code
*/
public function actionIndex($message = 'hello world')
{
echo $message . "\n";
return ExitCode::OK;
}
}
<?php
namespace app\commands;
use yii\console\Controller;
class MyController extends Controller
{
public function actionTest_method()
{
echo 'I am test method';
}
}
3条答案
按热度按时间h79rfbju1#
首先,你不需要从控制台调用前端控制器。如果你想这样做,你可以用一个带有以下URL模式的curl命令。Yii2 URL routing
但是,根据Yii2指南,您可以使用console commands从控制台运行脚本。
因此您的控制器应该位于commands目录中。
这是Yii2基本应用模板的
helloController.php
。正如你所看到的,这扩展了
yii\console\Controller
,它具有运行带有Yii2特性的控制台命令的能力。使用此示例代码。您只需运行
脚本将输出
在您的示例中,创建一个
MyController.php
类来扩展commands目录中的yii\console\Controller
。请输入以下代码。
并且运行了
在根目录中。
pxiryf3j2#
小记:如果是“高级”模板-控制台控制器位于“console”文件夹中,否则如果是“基本”模板-位于“command”文件夹中
yfwxisqw3#
您的控制台控制器必须位于htdocs/project/console/controllers/中。另外,请检查控制台配置中的controllerNamespace