在前端/控制器中调用 yii2 控制台/控制器

问题描述

我希望能够在我的前端/控制器命名空间中触发控制台控制器,并且还能够传递一些参数,以便请求在后台运行,并干预用户在前端所做的任何事情。

>

这是我的控制台命令

<?PHP
namespace console\controllers;

use common\models\ApplicationStat;
use Yii;
use yii\console\Controller;
use yii\console\ExitCode;

class CronController extends Controller
{
    public $ain_number;
    public $din_number;
    public $userId;

    public function actionVerifyIdentity()
    {
        $model = new IdentityVerification();
        $model->applicant_id = $this->userId;
        $model->ain_status = $this->ain_number;
        $model->din_status = $this->din_number;
        $model->save();

        return ExitCode::OK;

    }

}

在我的前端/控制器操作中,我调用下面的代码段来触发控制台控制器中的 actionVerifyIdentity()。

Yii::$app->runAction('cron/verify-identity',[
                'din_number' => 1611515151,'ain_number' => 118818181,'userId' => 7893
            ]);

我怎样才能实现这一点,因为我上面写的内容显示找不到页面,而且看起来好像只能在控制台文件夹中工作?

解决方法

您应该遵循@rob006 的说明。但是如果你想直接使用控制器动作,那么你可以这样做 -

$identityVerfier = new CronController();
$identityVerfier->applicant_id = 7893;
$identityVerfier->ain_status = 118818181;
$identityVerfier->din_status = 1611515151;
$identityVerfier->actionVerifyIdentity();