#925 - Создать каркас модуля тестирования

parent 2f792aa6
<?php <?php
use yii\helpers\Html; use yii\helpers\Html;
use yii\helpers\ArrayHelper;
use kartik\file\FileInput; use kartik\file\FileInput;
use yii\helpers\Url; use yii\helpers\Url;
use common\modules\school\models\Courses; use common\modules\school\models\Courses;
use common\modules\testings\models\Test;
if ($model->image) { if ($model->image) {
$image = "<div class='file-widget'>".FileInput::widget([ $image = "<div class='file-widget'>".FileInput::widget([
...@@ -30,6 +32,7 @@ else { ...@@ -30,6 +32,7 @@ else {
} }
$elements = [ $elements = [
'test_id' => ['type' => 'dropdownlist', 'items' => ArrayHelper::map(Test::find()->all(), 'id', 'name', 'session.name'), 'empty' => 'Не задан'],
'title' => ['type' => 'text'], 'title' => ['type' => 'text'],
'description' => ['type' => 'textarea'], 'description' => ['type' => 'textarea'],
'description_for_course' => ['type' => 'textarea'], 'description_for_course' => ['type' => 'textarea'],
......
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
use yii\helpers\ArrayHelper; use yii\helpers\ArrayHelper;
use common\modules\school\models\Courses; use common\modules\school\models\Courses;
use common\modules\testings\models\Test;
$elements = [ $elements = [
'test_id' => ['type' => 'dropdownlist', 'items' => ArrayHelper::map(Test::find()->all(), 'id', 'name', 'session.name'), 'empty' => 'Не задан'],
'title' => ['type' => 'text'], 'title' => ['type' => 'text'],
'video_id' => ['type' => 'text'], 'video_id' => ['type' => 'text'],
'text' => ['type' => 'textarea'], 'text' => ['type' => 'textarea'],
......
...@@ -5,6 +5,7 @@ namespace common\modules\school\models; ...@@ -5,6 +5,7 @@ namespace common\modules\school\models;
use Yii; use Yii;
use common\modules\school\models\Lessons; use common\modules\school\models\Lessons;
use common\modules\testings\models\Test;
class Courses extends \common\components\ActiveRecordModel class Courses extends \common\components\ActiveRecordModel
{ {
...@@ -39,6 +40,7 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -39,6 +40,7 @@ class Courses extends \common\components\ActiveRecordModel
public function attributeLabels() public function attributeLabels()
{ {
return [ return [
'test_id' => 'Тест',
'title' => 'Заголовок', 'title' => 'Заголовок',
'description' => 'Описание', 'description' => 'Описание',
'type' => 'Тип курса', 'type' => 'Тип курса',
...@@ -55,7 +57,7 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -55,7 +57,7 @@ class Courses extends \common\components\ActiveRecordModel
{ {
return [ return [
[['title', 'description', 'type'], 'required'], [['title', 'description', 'type'], 'required'],
[['type', 'spec_proposition'], 'integer'], [['type', 'spec_proposition', 'test_id'], 'integer'],
[['title'], 'string', 'max' => 150], [['title'], 'string', 'max' => 150],
[['image'], 'string', 'max' => 100], [['image'], 'string', 'max' => 100],
[['description', 'description_for_course'], 'safe'], [['description', 'description_for_course'], 'safe'],
...@@ -91,6 +93,11 @@ class Courses extends \common\components\ActiveRecordModel ...@@ -91,6 +93,11 @@ class Courses extends \common\components\ActiveRecordModel
return $this->hasMany(Lessons::className(), ['course_id' => 'id']); return $this->hasMany(Lessons::className(), ['course_id' => 'id']);
} }
public function getTest()
{
return $this->hasOne(Test::className(), ['id' => 'test_id']);
}
public function getPath() public function getPath()
{ {
return Yii::getAlias('@frontend/web') . self::IMAGES_FOLDER; return Yii::getAlias('@frontend/web') . self::IMAGES_FOLDER;
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
namespace common\modules\school\models; namespace common\modules\school\models;
use common\modules\school\components\Utilities; use common\modules\school\components\Utilities;
use common\modules\school\models\Courses; use common\modules\school\models\Courses;
use common\modules\testings\models\Test;
/** /**
* This is the model class for table "testings_questions_image". * This is the model class for table "testings_questions_image".
...@@ -30,7 +30,7 @@ class Lessons extends \common\components\ActiveRecordModel ...@@ -30,7 +30,7 @@ class Lessons extends \common\components\ActiveRecordModel
public function name() public function name()
{ {
return 'Изображения для вопросов'; return 'Уроки';
} }
/** /**
...@@ -42,7 +42,7 @@ class Lessons extends \common\components\ActiveRecordModel ...@@ -42,7 +42,7 @@ class Lessons extends \common\components\ActiveRecordModel
[['title', 'video_id', 'course_id', 'number'], 'required'], [['title', 'video_id', 'course_id', 'number'], 'required'],
[['title'], 'string', 'max' => 150], [['title'], 'string', 'max' => 150],
[['video_id'], 'string', 'max' => 100], [['video_id'], 'string', 'max' => 100],
[['course_id', 'number'], 'integer'], [['course_id', 'number', 'test_id'], 'integer'],
[['text'], 'safe'], [['text'], 'safe'],
[['filesUpload'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif, rar, ai, ppt, doc, docx'], [['filesUpload'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif, rar, ai, ppt, doc, docx'],
]; ];
...@@ -55,6 +55,7 @@ class Lessons extends \common\components\ActiveRecordModel ...@@ -55,6 +55,7 @@ class Lessons extends \common\components\ActiveRecordModel
{ {
return [ return [
'id' => 'ID', 'id' => 'ID',
'test_id' => 'Тест',
'title' => 'Заголовок', 'title' => 'Заголовок',
'text' => 'Полезные материалы', 'text' => 'Полезные материалы',
'video_id' => 'Код видео', 'video_id' => 'Код видео',
...@@ -108,6 +109,11 @@ class Lessons extends \common\components\ActiveRecordModel ...@@ -108,6 +109,11 @@ class Lessons extends \common\components\ActiveRecordModel
{ {
return $this->hasMany(LessonImage::className(), ['lesson_id' => 'id']); return $this->hasMany(LessonImage::className(), ['lesson_id' => 'id']);
} }
public function getTest()
{
return $this->hasOne(Test::className(), ['id' => 'test_id']);
}
public function getPath() public function getPath()
{ {
......
<?php <?php
use yii\web\View;
use yii\helpers\Url;
use common\modules\users\widgets\UserBoxWidget; use common\modules\users\widgets\UserBoxWidget;
use common\modules\school\assets\WidgetAssetBundle; use common\modules\school\assets\WidgetAssetBundle;
use yii\web\View;
WidgetAssetBundle::register($this); WidgetAssetBundle::register($this);
?> ?>
...@@ -73,21 +75,23 @@ WidgetAssetBundle::register($this); ...@@ -73,21 +75,23 @@ WidgetAssetBundle::register($this);
</section> </section>
<section class="vc-cont"> <section class="vc-cont">
<div class="container"> <div class="container">
<div class="row"> <?php if($model->test) : ?>
<div class="col-md-4 col-xs-5 col-sm-12"> <div class="row">
<a href="#" class="vc_bt_quit_less">Завершить урок</a> <div class="col-md-4 col-xs-5 col-sm-12">
</div> <a href="<?=Url::to(['/testing/info/' . $model->test_id])?>" class="vc_bt_quit_less">Завершить урок</a>
<div class="col-md-8 col-xs-7 col-sm-12"> </div>
<div class="vc_quit_txt">Чтобы завершить урок, выполните задание.</div> <div class="col-md-8 col-xs-7 col-sm-12">
<div class="vc_quit_txt">Чтобы завершить урок, выполните задание.</div>
</div>
</div> </div>
</div> <?php endif; ?>
<div class="row"> <!-- <div class="row">
<div class="col-md-12 col-xs-12 col-sm-12"> <div class="col-md-12 col-xs-12 col-sm-12">
<div class="vc_green_inf"> <div class="vc_green_inf">
<span>Тестирование успешно пройдено. Вы набрали 99 999 балов.<br> Оставляйте комментарии, что бы увеличить Ваш рейтинг.</span> <span>Тестирование успешно пройдено. Вы набрали 99 999 балов.<br> Оставляйте комментарии, что бы увеличить Ваш рейтинг.</span>
</div> </div>
</div> </div>
</div> </div> -->
<?php if($model->text):?> <?php if($model->text):?>
<div class="row"> <div class="row">
......
...@@ -27,7 +27,7 @@ class TestController extends \common\components\BaseController ...@@ -27,7 +27,7 @@ class TestController extends \common\components\BaseController
public function actionInfo($id) public function actionInfo($id)
{ {
$passing = $this->findModel($id); $model = $this->findModel($id);
if( if(
$model $model
...@@ -553,7 +553,7 @@ class TestController extends \common\components\BaseController ...@@ -553,7 +553,7 @@ class TestController extends \common\components\BaseController
*/ */
protected function findModel($id) protected function findModel($id)
{ {
if (($model = Passing::findOne($id)) !== null) { if (($model = Test::findOne($id)) !== null) {
return $model; return $model;
} else { } else {
throw new NotFoundHttpException('The requested page does not exist.'); throw new NotFoundHttpException('The requested page does not exist.');
......
...@@ -12,28 +12,24 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -12,28 +12,24 @@ class Passing extends \common\components\ActiveRecordModel
{ {
const PAGE_SIZE = 10; const PAGE_SIZE = 10;
const FAILED = 0; const STARTED = 0;
const PASSED = 1; const PASSED = 1;
const MISTAKE = 2; const MISTAKE = 8;
const STARTED = 3; const FAILED = 9;
const AUTH = 4;
const NOT_STARTED = 5;
const PASSING_PERCENT_RIGHT_CENTER = 50; const PASSING_PERCENT_RIGHT_CENTER = 50;
const PASSING_PERCENT_RIGHT_ALMOST = 75; const PASSING_PERCENT_RIGHT_ALMOST = 75;
const PASSING_PERCENT_RIGHT_ALL = 100; const PASSING_PERCENT_RIGHT_ALL = 100;
public static $state_list = [ public static $state_list = [
self::NOT_STARTED => 'Не сдавал', self::STARTED => 'Начал тестирование',
self::FAILED => 'Не сдал', self::FAILED => 'Не сдал',
self::PASSED => 'Сдал', self::PASSED => 'Сдал',
self::MISTAKE => 'Ошибка', self::MISTAKE => 'Ошибка',
self::STARTED => 'Начал тестирование',
self::AUTH => 'Не авторизован',
]; ];
public static $answer_list = [ public static $answer_list = [
self::FAILED => 'Не верно', self::STARTED => 'Не верно',
self::PASSED => 'Верно', self::PASSED => 'Верно',
]; ];
...@@ -54,12 +50,6 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -54,12 +50,6 @@ class Passing extends \common\components\ActiveRecordModel
public function behaviors() public function behaviors()
{ {
return [ return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'create_date',
'updatedAtAttribute' => null,
'value' => new Expression('NOW()'),
],
]; ];
} }
...@@ -123,132 +113,20 @@ class Passing extends \common\components\ActiveRecordModel ...@@ -123,132 +113,20 @@ class Passing extends \common\components\ActiveRecordModel
return $count; return $count;
} }
public function getPercent()
{
public function buildSearchCriteria() {
$criteria = new CDbCriteria();
$criteria->compare('id', $this->id);
$criteria->compare('user_id', $this->user_id);
$criteria->compare('test_id', $this->test_id);
//$criteria->compare('is_passed', $this->is_passed);
$criteria->compare('create_date', $this->create_date, true);
$tpassing = Yii::app()->request->getQuery('TestingPassing');
$pass_date = 'CONCAT( RIGHT( LEFT( pass_date, 10 ) , 4 ) , "-", TRIM(
TRAILING CONCAT( ".", SUBSTRING_INDEX( LEFT( pass_date, 10 ) , ".", -1 ) )
FROM TRIM(
LEADING CONCAT( SUBSTRING_INDEX( LEFT( pass_date, 10 ) , ".", 1 ) , "." )
FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )';
if (($tpassing['pass_date']) && (Yii::app()->request->getQuery('date_to'))) {
$criteria->addCondition($pass_date.' BETWEEN "'.$tpassing['pass_date'].'" AND "'.Yii::app()->request->getQuery('date_to').'"');
}
elseif(Yii::app()->request->getQuery('date_to')) {
$criteria->addCondition($pass_date.' < "'.Yii::app()->request->getQuery('date_to').'"');
}
elseif($tpassing['pass_date']) {
$criteria->addCondition($pass_date.' > "'.Yii::app()->request->getQuery('pass_date').'"');
}
if (Yii::app()->request->getQuery('status_is_null')) {
$criteria->addCondition('is_passed is null');
}
$criteria->with = array('user','test','mistake');
$criteria->order = 'user.last_name, user.first_name, user.patronymic, test.name';
$criteria->together = true;
if ($this->is_passed == 4) {
$criteria->addCondition('user.create_date > "2014-06-05 00:00:00"');
$criteria->addCondition('user.is_auth = 0');
} elseif ($this->is_passed == 3) {
$criteria->addCondition('is_passed = 0');
$criteria->addCondition('pass_date is null');
$criteria->addCondition('mistake.passing_id is null');
} elseif ($this->is_passed == 2) {
$criteria->addCondition('mistake.passing_id = t.id');
} elseif ($this->is_passed == 1) {
$criteria->addCondition('is_passed = 1');
$criteria->addCondition('mistake.passing_id is null');
} elseif ($this->is_passed === '0') {
$criteria->addCondition('is_passed = 0');
$criteria->addCondition('pass_date is not null');
$criteria->addCondition('mistake.passing_id is null');
} elseif ($this->is_passed == 5) {
$criteria->addCondition('is_passed is null');
$criteria->addCondition('mistake.passing_id is null');
}
$criteria->compare('test.session_id', Yii::app()->request->getQuery('session'));
if (isset($_GET['email']) && $_GET['email'])
{
$criteria->compare('user.email', $_GET['email'], true);
$criteria->together = true;
}
if (isset($_GET['company_name']) && $_GET['company_name'])
{
$criteria->compare('user.company_name', $_GET['company_name'], true);
$criteria->together = true;
}
if (isset($_GET['fio']) && $_GET['fio'])
{
$criteria->compare('user.last_name', $_GET['fio'], true);
$criteria->together = true;
}
if (Yii::app()->user->getRole() == 'schneider_electric')
{
$criteria->compare('user.tki', Yii::app()->user->getName(), true);
$criteria->together = true;
}
return $criteria;
}
public function getGammas() {
$cr = new CDbCriteria;
$cr->with = 'questions.passings.passing';
$cr->addCondition('passing.id = :passing_id');
$cr->group = 't.id';
$cr->distinct = true;
$cr->params = array(
':passing_id' => $this->id,
);
$cr->select = 'gamma.*';
return TestingGamma::model()->findAll($cr);
}
public function gammaPercent($gamma_id) {
$all = 0; $all = 0;
$right = 0; $right = 0;
foreach ($this->questions as $pq) {
if ($pq->question->gamma_id == $gamma_id) {
$all++;
if ($pq->isRight) {
$right++;
}
}
}
return ($all <> 0) ? ceil($right*100/$all) : "- ";
}
public function getPercent() { foreach ($this->questions as $pq)
$all = 0; {
$right = 0;
foreach ($this->questions as $pq) {
$all++; $all++;
if ($pq->isRight) { if ($pq->isRight)
{
$right++; $right++;
} }
} }
return ($all <> 0) ? ceil($right*100/$all) : "- "; return ($all <> 0) ? ceil($right*100/$all) : "- ";
} }
...@@ -259,11 +137,11 @@ FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )'; ...@@ -259,11 +137,11 @@ FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )';
public function getMessageStep() public function getMessageStep()
{ {
$list = array( $list = [
self::PASSING_PERCENT_RIGHT_ALL => Setting::getValue('message_passing_percent_right_all'), self::PASSING_PERCENT_RIGHT_ALL => Settings::getValue('message_passing_percent_right_all'),
self::PASSING_PERCENT_RIGHT_ALMOST => Setting::getValue('message_passing_percent_right_almost'), self::PASSING_PERCENT_RIGHT_ALMOST => Settings::getValue('message_passing_percent_right_almost'),
self::PASSING_PERCENT_RIGHT_CENTER => Setting::getValue('message_passing_percent_right_center'), self::PASSING_PERCENT_RIGHT_CENTER => Settings::getValue('message_passing_percent_right_center'),
); ];
foreach ($list as $percent => $message) foreach ($list as $percent => $message)
{ {
...@@ -276,7 +154,8 @@ FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )'; ...@@ -276,7 +154,8 @@ FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )';
return; return;
} }
public function getTime() { public function getTime()
{
if($this->pass_date_start && $this->pass_date) if($this->pass_date_start && $this->pass_date)
{ {
return (strtotime($this->pass_date) - strtotime($this->pass_date_start)); return (strtotime($this->pass_date) - strtotime($this->pass_date_start));
...@@ -291,68 +170,6 @@ FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )'; ...@@ -291,68 +170,6 @@ FROM LEFT( pass_date, 10 ) ) ) , "-", LEFT( pass_date, 2 ) )';
} }
} }
public function recountPassResult() {
if ($this->percent >= $this->test->pass_percent) {
$this->is_passed = self::PASSED;
} else {
$this->is_passed = self::FAILED;
}
return true;
}
public function getStatus()
{
$user = User::findOne($this->user_id);
if ((strtotime($user->create_date) > mktime(0,0,0,6,5,2014)) && ($user->is_auth == 0))
{
return self::AUTH;
}
elseif ($this->mistake)
{
return self::MISTAKE;
}
elseif (($this->is_passed === '0') && ($this->pass_date === null) && $this->attempt < $this->test->attempt && strtotime($this->pass_date_start) + ($this->test->minutes * 60) >= time())
{
return self::STARTED;
}
elseif($this->is_passed === 0 && ($this->attempt > $this->test->attempt || strtotime($this->pass_date_start) + ($this->test->minutes * 60) >= time()))
{
return self::FAILED;
}
elseif ($this->is_passed === NULL)
{
return self::NOT_STARTED;
}
else
{
return $this->is_passed;
}
}
public function sendNotAttempt($message)
{
$body = Setting::getValue('email_not_attempt_body');
$subject = 'Тестирование - обращение ' . uniqid();
$test = $this->test;
$session = $test->session;
$user = $this->user;
$mailer_letter = MailerLetter::model();
$body = $mailer_letter->compileText($body, array(
'fio_user_link' => CHtml::link($user->fio, Yii::app()->request->hostInfo . Yii::app()->urlManager->createUrl('/testings/testingUserAdmin/view', array('id' => $this->user_id))),
'session_name' => $session->name,
'test_name' => $test->name,
'message' => $message,
'session_users_link' => CHtml::link('пользователи', Yii::app()->request->hostInfo . Yii::app()->urlManager->createUrl('/testings/testingUserAdmin/manage', array('session' => $session->id))),
'attempt_link' => CHtml::link('переназначить', Yii::app()->request->hostInfo . Yii::app()->urlManager->createUrl('/testings/TestingPassingAdmin/reAttempt', array('id' => $this->id))),
));
unset($mailer_letter);
return MailerModule::sendMailUniSender(Setting::getValue('not_attempt_email'), $subject, $body);
}
public static function declOfNum($number, $titles) public static function declOfNum($number, $titles)
{ {
$cases = array (2, 0, 1, 1, 1, 2); $cases = array (2, 0, 1, 1, 1, 2);
......
...@@ -8,7 +8,7 @@ use yii\helpers\Html; ...@@ -8,7 +8,7 @@ use yii\helpers\Html;
<div class="row"> <div class="row">
<div class="col-md-12 col-xs-12 col-sm-12"> <div class="col-md-12 col-xs-12 col-sm-12">
<strong>Тест:</strong> <strong>Тест:</strong>
<p><?=$model->test->name?></p> <p><?=$model->name?></p>
</div> </div>
</div> </div>
</div> </div>
...@@ -18,18 +18,18 @@ use yii\helpers\Html; ...@@ -18,18 +18,18 @@ use yii\helpers\Html;
<div class="row"> <div class="row">
<div class="col-md-12 col-xs-12 col-sm-12"> <div class="col-md-12 col-xs-12 col-sm-12">
<h1 class="successfully_title">Вы собираетесь сдать экзамен:</h1> <h1 class="successfully_title">Вы собираетесь сдать экзамен:</h1>
<h6>«<?=$model->test->name?>»</h6> <h6>«<?=$model->name?>»</h6>
</div> </div>
</div> </div>
<div class="test_parameters"> <div class="test_parameters">
<div class="row"> <div class="row">
<div class="col-md-6 col-xs-6 col-sm-12"> <div class="col-md-6 col-xs-6 col-sm-12">
<img src="/images/icon/test_parameters_icon_1.png" height="83" width="70" alt=""> <img src="/images/icon/test_parameters_icon_1.png" height="83" width="70" alt="">
<h4><?=$model->test->minutes?> минут</h4> <h4><?=$model->minutes?> минут</h4>
</div> </div>
<div class="col-md-6 col-xs-6 col-sm-12"> <div class="col-md-6 col-xs-6 col-sm-12">
<img src="/images/icon/test_parameters_icon_2.png" height="83" width="62" alt=""> <img src="/images/icon/test_parameters_icon_2.png" height="83" width="62" alt="">
<h4><?=$model->test->questions?> вопросов</h4> <h4><?=$model->questions?> вопросов</h4>
</div> </div>
</div> </div>
</div> </div>
......
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160218_175646_add_test_in_school extends Migration
{
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
$this->addColumn('courses', 'test_id', Schema::TYPE_INTEGER . "(11) DEFAULT NULL AFTER `id`");
$this->addColumn('lessons', 'test_id', Schema::TYPE_INTEGER . "(11) DEFAULT NULL AFTER `id`");
}
public function safeDown()
{
$this->dropColumn('courses', 'test_id');
$this->dropColumn('lessons', 'test_id');
}
}
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160218_184352_update_passings_table extends Migration
{
// Use safeUp/safeDown to run migration code within a transaction
public function safeUp()
{
$this->renameColumn('testings_passings', 'percent_rights', 'points');
$this->renameColumn('testings_passings', 'pass_date', 'start_date');
$this->renameColumn('testings_passings', 'is_passed', 'status');
$this->dropColumn('testings_passings', 'create_date');
$this->dropColumn('testings_passings', 'pass_date_start');
$this->alterColumn('testings_passings', 'status', Schema::TYPE_INTEGER . '(4) NOT NULL DEFAULT 0');
$this->alterColumn('testings_passings', 'points', Schema::TYPE_INTEGER . '(11) NOT NULL DEFAULT 0');
}
public function safeDown()
{
$this->renameColumn('testings_passings', 'points', 'percent_rights');
$this->renameColumn('testings_passings', 'start_date', 'pass_date');
$this->renameColumn('testings_passings', 'status', 'is_passed');
$this->addColumn(
'testings_passings',
'create_date',
Schema::TYPE_TIMESTAMP . ' NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'
);
$this->addColumn('testings_passings', 'pass_date_start', Schema::TYPE_STRING . '(22) NOT NULL');
$this->alterColumn('testings_passings', 'is_passed', 'tinyint(1) DEFAULT NULL');
$this->alterColumn('testings_passings', 'percent_rights', Schema::TYPE_INTEGER . '(11) NOT NULL');
}
}
...@@ -157,6 +157,8 @@ return [ ...@@ -157,6 +157,8 @@ return [
'blog' => 'blog/post/index', 'blog' => 'blog/post/index',
'blog/tag/<tag>' => 'blog/post/tag', 'blog/tag/<tag>' => 'blog/post/tag',
'blog/<url>' => 'blog/post/view', 'blog/<url>' => 'blog/post/view',
'testing/<_a>/<id:\d+>' => 'testings/test/<_a>',
'testing/<_a>' => 'testings/test/<_a>',
'school' => 'school/course/index', 'school' => 'school/course/index',
'school/course/<id>' => 'school/course/view', 'school/course/<id>' => 'school/course/view',
'school/lesson/<id>' => 'school/lesson/view', 'school/lesson/<id>' => 'school/lesson/view',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment