这里我想在yii2
中运行命令提示符命令这是我要运行此命令的命令yii2
C:\wamp\www\source>yii test\pending
如何使用以下按钮执行上述命令。
<a href="#" class="btn btn-info" role="button">Execute</a>
更新
TestController.php
public function actionPending()
{
$today = date('Y-m-d');
$dt1 = ArrayHelper::map(Claimprocess2::find()->all(),'id','turn_around_time_set');
$dt2 = ArrayHelper::map(Claimprocess2::find()->all(),'id','updated_at');
$name = ArrayHelper::map(Claimprocess2::find()->all(),'id','id');
foreach ($dt1 as $key => $value)
{
$trt = print_r($value, true);
$update = print_r($dt2[$key], true);
$name1 = print_r($name[$key], true);
if($today == $trt && $update == '')
{
$sql = "INSERT INTO pending (claimer_name, status, template, last_trt, email)
SELECT claimprocess_start_for, status, template, turn_around_time_set, tpa_email
FROM claimprocess_2 WHERE id=$name1";
$query = Yii::$app->db->createCommand($sql)->execute();
echo "cron service runnning";
}
}
}`
主local.php
'consoleRunner' => [
'class' => 'vova07\console\ConsoleRunner',
'file' => '@console/controllers' // or an absolute path to console file
],
pendingcontroller.php
public function actionTest()
{
$return = Yii::$app->consoleRunner->run('test/pending');
echo "$return";
}
待决/ index.php的
<?= Html::a('Execute', ['pending/test'], ['class' => 'btn btn-primary']) ?>
在按下执行按钮时获取值1,命令未执行
先谢谢
答案 0 :(得分:1)
我认为你可以尝试这样的事情:
您的HTML文件。
<a href="test.php?runtest=true" class="btn btn-info" role="button">Execute</a>
test.php的
<?php
if($_REQUEST['runtest']) {
$result = shell_exec('yii test\pending');
echo $result;
}
?>
但是在php文件中执行shell命令会非常危险。
答案 1 :(得分:1)
您可以使用此扩展程序:Console Runner
按照上面的链接并使用此命令运行控制台作业:
Yii::$app->consoleRunner->run('test\pending');
您可以将上述代码放在控制器操作中,并在单击按钮时调用此操作。
<强>更新强>
例如。 的前端\控制器\ SiteController 强>
use vova07\console\ConsoleRunner
;
public function actionIndex()
{
$cr = new ConsoleRunner(['file' => '@my/path/to/yii']);
$cr->run('test/pending');
}
<强>安慰时,安慰\控制器\的TestController:强>
public function actionPending()
{
// Your code
}
然后您可以将索引操作称为:
echo Html::a('Execute', ['site/index']);
答案 2 :(得分:0)
试试这个(如果你想通过PHP执行):
这是yii(没有分机,不是yii.bat)
确保将php文件夹添加到PATH变量(Windows)
$op = shell_exec ( 'absolute/path/to/yii ' . 'cache/flush-all' );
\yii\helpers\VarDumper::dump($op, 10, 1);
输出:
The following cache components were processed:
* cache (yii\\caching\\FileCache)
答案 3 :(得分:-1)
我已经通过在php.ini文件中添加这两个扩展来解决了这个问题
count = count + 1