亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Shell 調用前端控制器 yii2 不起作用

使用 Shell 調用前端控制器 yii2 不起作用

PHP
慕沐林林 2023-09-22 16:50:14
我是 Yii2 Framework 的新手,我正在嘗試調用位于下面前端文件夾中的控制器htdocs/project/frontend/controllers/MyController.php我要調用的方法是actionTest_method()在終端(在項目根目錄中)中,我正在編寫php yii my/test_method我試過php yii frontend/controllers/my/test_method但沒有工作錯誤,我收到 InvalidRouteException
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

備注:如果是“高級”模板 - 控制臺控制器位于“控制臺”文件夾中,否則如果是“基本”模板 - 位于“命令”文件夾中



查看完整回答
反對 回復 2023-09-22
?
www說

TA貢獻1775條經驗 獲得超8個贊

首先。您不需要從控制臺調用前端控制器。如果你想這么做的話。您可以使用帶有以下 URL 模式的curl 命令來執行此操作。Yii2 URL 路由

curl?GET?'example.com/my/action-name'

但是,根據 Yii2 指南,您可以使用控制臺命令從控制臺運行腳本。

所以你的控制器應該位于命令目錄中。

這是helloController.phpYii2 基本應用程序模板的。

<?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

在根目錄中。


查看完整回答
反對 回復 2023-09-22
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

您的控制臺控制器必須位于 htdocs/project/console/controllers/ 中,還要檢查您的控制臺配置中的controllerNamespace



查看完整回答
反對 回復 2023-09-22
  • 3 回答
  • 0 關注
  • 166 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號