public function courseExam($id)
{
try {
$exam = Exam::findOrFail($id);
} catch(\Exception $e) {
\Session::flash('my-errors', ['error' => 'Тестирование которое вы ищите не найдено']);
return \Redirect::route('pages.courses.index');
}
$course = Course::whereRaw('enter_id = '.$id.' or finish_id = '.$id)->firstOrFail();
$questions = $exam->questions()->paginate(1);
$user = \Auth::getUser();
$futile = Futile::whereRaw('user_id = '.$user->id.' and exam_id = '.$exam->id)->first();
if (!count($futile)) {
$futile = new Futile();
$futile->try_count = 0;
$futile->try_max = 3;
$futile->save();
$exam->futile()->save($futile);
$user->futile()->save($futile);
} elseif ($futile->try_count == $futile->try_max) {
\Session::flash('my-messages', ['result' => 'Вы превысили допустимое количество попыток']);
return \Redirect::route('pages.courses.show', $course->slug);
}
$futile->try_started = 1;
$limit = $exam->limit()->first();
if (count($limit)) {
$futile->try_end_time = date('Y-m-d G:i:s', time() + $limit->limits_time*60);
$futile->try_max = $limit->limits_try;
} else {
$futile->try_end_time = date('Y-m-d G:i:s', time() + 30*60);
}
$futile->save();
$time = strtotime($futile->try_end_time) - time();
return view('pages.courses.course-exam', compact('questions', 'course', 'exam', 'time'));
}
视图:
<div class="container">
<div class="row">
<h2>Тестирование по курсу {{ $course->course_name }}</h2>
<div id="timer" value="{{ $time }}"></div>
<hr/>
@include('pages.courses.exam-form')
</div>
</div>
包括:
<div class="container">
<section>
{!! Form::open(['class' => 'form', 'method' => 'POST', 'route' => 'exam.result.store', 'id' => 'examForm']) !!}
{!! Form::hidden('user', Auth::user()->id) !!}
{!! Form::hidden('date', \Carbon\Carbon::now()) !!}
{!! Form::hidden('exam', $exam->id) !!}
{!! Form::hidden('course', $course->id) !!}
<div class="question-line" style="display: inline;clear: both;">
@foreach($questions as $question)
@if(count($question->answers()->get()))
<h2>{{ $question->question }}</h2>
@foreach($question->answers()->get() as $answer)
<div class="checkbox">
<label>
{!! Form::checkbox('answer-'.$answer->id, $answer->id) !!} {{ $answer->answer }}
</label>
</div>
@endforeach
@endif
@if($question->free)
<div class="form-group">
{{ $question->question }}
{!! Form::text('free-answer-'.$question->answerFree()->first()->id, null, ['class' => 'form-control']) !!}
</div>
@endif
@endforeach
</div>
<hr/>
@include('pages.pagination.default', ['paginator' => $questions])
<div class="btn-group" role="group" style="float: left; margin-top: 20px;">
<a class="btn btn-default" href="{{ URL::route('pages.courses.show', $course->slug) }}">Отмена</a>
{!! Form::submit('Завершить', ['class' => 'btn btn-primary', 'id' => 'end-test']) !!}
</div>
{!! Form::close() !!}
</section>
</div>