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 <[email protected]>
?* @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 關注
- 166 瀏覽
添加回答
舉報