Php 如何创建每3天从数据库中删除的yii高级控制台命令
在我的数据库中,我有表名post和列名day,我想创建一个yii2高级控制台命令,删除3天以上的帖子,有人能帮我吗?我将给你一个命令示例,用于清理数据库中那些尚未确认其电子邮件的用户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
<?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。。。也应该有命令测试。你明白了吗?你应该在你的问题中包括你尝试过的解决方案。请阅读,您应该在问题中包含您尝试过的解决方案。请阅读