/** * */ private function generateStudents() { $levels = array(Student::LEVEL_A1, Student::LEVEL_A2, Student::LEVEL_B1, Student::LEVEL_B2, Student::LEVEL_C1, Student::LEVEL_C2); $oldestMktime = mktime(0, 0, 0, 0, 0, date('Y') - $this->getConfig('student_max_age')); $newestMktime = mktime(0, 0, 0, 0, 0, date('Y') - $this->getConfig('student_min_age')); $prepareItemData = function ($itemNum) use($oldestMktime, $newestMktime, $levels) { return ['Student Name ' . $itemNum, "test{$itemNum}@email.com", date('Y-m-d', rand($oldestMktime, $newestMktime)), $levels[rand(0, count($levels) - 1)]]; }; $this->loadByPortion($prepareItemData, Student::tableName(), ['name', 'email', 'birthday', 'level'], $this->getConfig('students_num')); }