3 回答
TA贡献1775条经验 获得超8个赞
首先。您不需要从控制台调用前端控制器。如果你想这么做的话。您可以使用带有以下 URL 模式的curl 命令来执行此操作。Yii2 URL 路由
curl GET 'example.com/my/action-name'
但是,根据 Yii2 指南,您可以使用控制台命令从控制台运行脚本。
所以你的控制器应该位于命令目录中。
这是helloController.php
Yii2 基本应用程序模板的。
<?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;
}
}
正如您所看到的,它扩展yii\console\Controller了具有使用 Yii2 功能运行控制台命令的能力。
与此示例代码。你只需要跑
php yii hello
脚本将输出
hello world
在您的情况下,创建一个在命令目录内MyController.php扩展的类。yii\console\Controller
输入以下代码。
<?php
namespace app\commands;
use yii\console\Controller;
class MyController extends Controller
{
public function actionTest_method()
{
echo 'I am test method';
}
}
并运行
php yii my/test_method
在根目录中。
TA贡献1848条经验 获得超6个赞
您的控制台控制器必须位于 htdocs/project/console/controllers/ 中,还要检查您的控制台配置中的controllerNamespace
- 3 回答
- 0 关注
- 123 浏览
添加回答
举报