3 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
備注:如果是“高級”模板 - 控制臺控制器位于“控制臺”文件夾中,否則如果是“基本”模板 - 位于“命令”文件夾中

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先。您不需要從控制臺調(diào)用前端控制器。如果你想這么做的話。您可以使用帶有以下 URL 模式的curl 命令來執(zhí)行此操作。Yii2 URL 路由
curl?GET?'example.com/my/action-name'
但是,根據(jù) Yii2 指南,您可以使用控制臺命令從控制臺運(yùn)行腳本。
所以你的控制器應(yīng)該位于命令目錄中。
這是helloController.php
Yii2 基本應(yīng)用程序模板的。
<?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;
? ? }
}
正如您所看到的,它擴(kuò)展yii\console\Controller了具有使用 Yii2 功能運(yùn)行控制臺命令的能力。
與此示例代碼。你只需要跑
php yii hello
腳本將輸出
hello world
在您的情況下,創(chuàng)建一個(gè)在命令目錄內(nèi)MyController.php擴(kuò)展的類。yii\console\Controller
輸入以下代碼。
<?php
? ?
? ? namespace app\commands;
? ??
? ? use yii\console\Controller;
? ??
? ? class MyController extends Controller
? ? {
? ? ? ?
? ? ? ? public function actionTest_method()
? ? ? ? {
? ? ? ? ? ? echo 'I am test method';
? ??
? ? ? ? }
? ? }
并運(yùn)行
php yii my/test_method
在根目錄中。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
您的控制臺控制器必須位于 htdocs/project/console/controllers/ 中,還要檢查您的控制臺配置中的controllerNamespace
- 3 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報(bào)