2
2
3
3
namespace console \commands ;
4
4
5
+ use Yii ;
6
+ use yii \base \Model ;
5
7
use yii \console \Controller ;
6
8
use yii \helpers \Console ;
7
9
use yii \helpers \{FileHelper , VarDumper };
12
14
*/
13
15
class FakerController extends Controller
14
16
{
17
+ /**
18
+ * Fill tables with fake data
19
+ */
15
20
public function actionIndex ()
16
21
{
17
22
$ fakers = FileHelper::findFiles (\Yii::getAlias ('@common/models ' ), [
@@ -36,6 +41,35 @@ public function actionIndex()
36
41
}
37
42
}
38
43
44
+ /**
45
+ * Delete all table contents
46
+ */
47
+ public function actionClear ()
48
+ {
49
+ $ fakers = FileHelper::findFiles (\Yii::getAlias ('@common/models ' ), [
50
+ 'only ' => ['*Faker.php ' ],
51
+ 'except ' => ['BaseModelFaker.php ' ],
52
+ ]);
53
+
54
+ $ sortedFakersModels = static ::sortModels ($ fakers , '\\common \\models \\faker \\' );
55
+ $ sortedFakersModels_DESC = array_reverse ($ sortedFakersModels );
56
+ foreach ($ sortedFakersModels_DESC as $ modelName ) {
57
+ /** @var Model $modelClass */
58
+ $ modelClass = 'common \\models \\base \\' .$ modelName ;
59
+ Yii::$ app ->db ->createCommand ()->delete ($ modelClass ::tableName ())->execute ();
60
+ $ this ->stdout ("Data from $ modelName was deleted \n" );
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Delete all table contents and refill with fake data
66
+ */
67
+ public function actionRefresh ()
68
+ {
69
+ $ this ->actionClear ();
70
+ $ this ->actionIndex ();
71
+ }
72
+
39
73
public static function sortModels (array $ fakers , string $ fakerNamespace = 'app \\models \\' )
40
74
{
41
75
$ modelsDependencies = [];
0 commit comments