gpt4 book ai didi

php - yii2 如何运行控制台 Controller 功能

转载 作者:可可西里 更新时间:2023-11-01 00:08:19 24 4
gpt4 key购买 nike

我卡住了。我正在尝试从命令 shell 运行一些功能。我正在使用基本项目中的 HelloController。当我运行 php yii hello 它运行良好并且索引函数正在运行但是如果我尝试运行不同的函数如 php yii hello/create 我会收到这个错误 -

Error: Unknown command.

我向这个 Controller 添加了创建函数。奇怪的是,当我运行 php yii 时,我看到了创建命令。我的 Controller 代码

namespace app\commands;

use yii\console\Controller;
use Yii;

class HelloController extends Controller
{

public function actionIndex($message = 'hello world')
{
echo $message . "\n";
}
public function actionCreate($message = 'hello world')
{
echo $message . "\n";
}

}

更新:我的配置文件是

Yii::setAlias('@tests', dirname(__DIR__) . '/tests');

$params = require(__DIR__ . '/params.php');
$db = require(__DIR__ . '/db.php');

return [
'id' => 'basic-console',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log', 'gii'],
'controllerNamespace' => 'app\commands',
'modules' => [
'gii' => 'yii\gii\Module',
],
'components' => [

'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@app/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => '...',
'username' => '...',
'password' => '...',
'port' => '...',
//'encryption' => 'tls',
],

],

'cache' => [
'class' => 'yii\caching\FileCache',
],
'authManager' => [
'class' => 'yii\rbac\DbManager',
],

'log' => [
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'db' => $db,


],
'params' => $params,
];

有谁知道如何解决这个问题?谢谢。

最佳答案

当你运行时

php yii hello

您正在调用 HelloControlleractionIndex。此 Controller 没有任何其他操作,因此您会看到错误。

干净的 Basic App 控制台安装中唯一可用的 create 词位于 migrate 部分,因此您可以在 MigrateController 中调用 actionCreate 通过运行

php yii migrate/create

因此,除非您有一些自定义 Controller /操作,否则没有其他选择。

对于所有可用的操作,像以前一样运行 php yii。你可以运行

php yii help <command-name>

有关所选命令的帮助。

the Guide 中阅读有关控制台命令的更多信息.

关于php - yii2 如何运行控制台 Controller 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41419205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com