Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建每3天从数据库中删除的yii高级控制台命令_Php_Database_Yii2_Console_Cron Task - Fatal编程技术网

Php 如何创建每3天从数据库中删除的yii高级控制台命令

Php 如何创建每3天从数据库中删除的yii高级控制台命令,php,database,yii2,console,cron-task,Php,Database,Yii2,Console,Cron Task,在我的数据库中,我有表名post和列名day,我想创建一个yii2高级控制台命令,删除3天以上的帖子,有人能帮我吗?我将给你一个命令示例,用于清理数据库中那些尚未确认其电子邮件的用户 <?php namespace app\commands; use app\models\User; use yii\console\Controller; class LimpiarController extends Controller { public function actionInd

在我的数据库中,我有表名post和列名day,我想创建一个yii2高级控制台命令,删除3天以上的帖子,有人能帮我吗?

我将给你一个命令示例,用于清理数据库中那些尚未确认其电子邮件的用户

<?php
namespace app\commands;
use app\models\User;
use yii\console\Controller;

class LimpiarController extends Controller
{

    public function actionIndex()
    {
        echo User::deleteAll(['and', 'confirmed_at is null', ['>', '(current_timestamp - to_timestamp(created_at))', '24 hours']]);
    }
}

我将给你一个命令示例,用于清理数据库中尚未确认其电子邮件的用户

<?php
namespace app\commands;
use app\models\User;
use yii\console\Controller;

class LimpiarController extends Controller
{

    public function actionIndex()
    {
        echo User::deleteAll(['and', 'confirmed_at is null', ['>', '(current_timestamp - to_timestamp(created_at))', '24 hours']]);
    }
}

您要做的是,创建一个Cron作业来删除超过3天的帖子

步骤1:在控制台/控制器目录中创建一个控制器,如下所示

<?php

namespace console\controllers;
use Yii;
use yii\console\Controller;
use yii\helpers\Console;

class CronController extends Controller {

    public function actionTest() {
        echo "Test cron job"; // your logic for deleting old post goes here
        exit();
    }
}
#!/usr/bin/env php
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/common/config/bootstrap.php');
require(__DIR__ . '/console/config/bootstrap.php');

$config = yii\helpers\ArrayHelper::merge(
    require(__DIR__ . '/common/config/main.php'),
    require(__DIR__ . '/common/config/main-local.php'),
    require(__DIR__ . '/console/config/main.php'),
    require(__DIR__ . '/console/config/main-local.php')
);

$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);
注意:确保您的
控制台/config
目录中有所有必要的配置文件

步骤3:现在是运行cron作业的时候了

转到命令提示符/terminal中的根目录并执行以下命令,您必须看到消息在测试操作中回显

 php yii cron/test
这里

  • cron=>控制器的名称

  • test=>操作的名称


  • 您要做的是,创建一个Cron作业来删除超过3天的帖子

    步骤1:在控制台/控制器目录中创建一个控制器,如下所示

    <?php
    
    namespace console\controllers;
    use Yii;
    use yii\console\Controller;
    use yii\helpers\Console;
    
    class CronController extends Controller {
    
        public function actionTest() {
            echo "Test cron job"; // your logic for deleting old post goes here
            exit();
        }
    }
    
    #!/usr/bin/env php
    <?php
    defined('YII_DEBUG') or define('YII_DEBUG', true);
    defined('YII_ENV') or define('YII_ENV', 'dev');
    
    require(__DIR__ . '/vendor/autoload.php');
    require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
    require(__DIR__ . '/common/config/bootstrap.php');
    require(__DIR__ . '/console/config/bootstrap.php');
    
    $config = yii\helpers\ArrayHelper::merge(
        require(__DIR__ . '/common/config/main.php'),
        require(__DIR__ . '/common/config/main-local.php'),
        require(__DIR__ . '/console/config/main.php'),
        require(__DIR__ . '/console/config/main-local.php')
    );
    
    $application = new yii\console\Application($config);
    $exitCode = $application->run();
    exit($exitCode);
    
    注意:确保您的
    控制台/config
    目录中有所有必要的配置文件

    步骤3:现在是运行cron作业的时候了

    转到命令提示符/terminal中的根目录并执行以下命令,您必须看到消息在测试操作中回显

     php yii cron/test
    
    这里

  • cron=>控制器的名称

  • test=>操作的名称


  • 您可以告诉我如何创建它,因为这是我第一次使用这个框架。只需在commands文件夹中创建一个TestController.php,编写类似于上面代码的内容,但需要一个测试(echo'Hello')。然后转到命令行,在根文件夹中,yii脚本的类型为“./yii test”(确保将控制器命名为TestController),您现在应该可以在bash中看到Hello。这不起作用,我创建了什么错误?具体点。顺便说一句,您不需要使用app\models\User。转到项目的根目录,所有文件夹都在那里,键入
    /yii
    ,您应该会看到黄色的命令,如migrate、message。。。也应该有命令测试。你明白了吗?我可以告诉我如何创建它,因为这是我第一次使用这个框架。只需在commands文件夹中创建一个TestController.php,编写类似上面的代码,但需要一个测试(echo'Hello')。然后转到命令行,在根文件夹中,yii脚本的类型为“./yii test”(确保将控制器命名为TestController),您现在应该可以在bash中看到Hello。这不起作用,我创建了什么错误?具体点。顺便说一句,您不需要使用app\models\User。转到项目的根目录,所有文件夹都在那里,键入
    /yii
    ,您应该会看到黄色的命令,如migrate、message。。。也应该有命令测试。你明白了吗?你应该在你的问题中包括你尝试过的解决方案。请阅读,您应该在问题中包含您尝试过的解决方案。请阅读