问题描述
我希望能够在我的前端/控制器命名空间中触发控制台控制器,并且还能够传递一些参数,以便请求在后台运行,并干预用户在前端所做的任何事情。
>这是我的控制台命令
<?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();