task-5 (Lessons and Scores) #5
@ -33,6 +33,7 @@ class LessonController extends Controller
|
|||||||
return view('grade-lesson.index', [
|
return view('grade-lesson.index', [
|
||||||
'lessons' => $this->service->getAll($grade),
|
'lessons' => $this->service->getAll($grade),
|
||||||
'grade' => $grade,
|
'grade' => $grade,
|
||||||
|
'subjects' => $grade->subjects,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
@ -40,4 +41,13 @@ class Lesson extends Model
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(Subject::class);
|
return $this->belongsTo(Subject::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function scopeFilter(Builder $query): void
|
||||||
|
{
|
||||||
|
$subject_id = request('subject_id');
|
||||||
|
|
||||||
|
$query->when($subject_id, function (Builder $query, $subject_id) {
|
||||||
|
$query->where('subject_id', $subject_id);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ class LessonService implements ServiceInterface
|
|||||||
|
|
||||||
public function getAll(?Grade $grade = null): Collection
|
public function getAll(?Grade $grade = null): Collection
|
||||||
{
|
{
|
||||||
return $grade->lessons;
|
return $grade->lessons()->filter()->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getGrades(): Collection
|
public function getGrades(): Collection
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
@extends('layouts.app')
|
`@extends('layouts.app')
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container col-md-5">
|
<div class="container col-md-5">
|
||||||
@ -9,6 +9,27 @@
|
|||||||
<a href="{{ route('grades.lessons.create', $grade) }}" class="btn btn-success">Добавить</a>
|
<a href="{{ route('grades.lessons.create', $grade) }}" class="btn btn-success">Добавить</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="card mt-4">
|
||||||
|
<div class="card-header">{{__('Фильтрация')}}</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form action="{{ route('grades.lessons.index', $grade) }}" method="GET">
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="subject_id" class="form-label">Предмет:</label>
|
||||||
|
<select id="subject_id" name="subject_id" class="form-select" required>
|
||||||
|
<option value="">Выберите предмет</option>
|
||||||
|
@foreach($subjects as $subject)
|
||||||
|
<option value="{{ $subject->id }}"> {{ $subject->id == request('subject_id') ? 'selected' : ''}}
|
||||||
|
{{ $subject->name }}
|
||||||
|
</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button type="submit" class="btn btn-primary">Фильтр</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@if(count($lessons))
|
@if(count($lessons))
|
||||||
@foreach($lessons as $lesson)
|
@foreach($lessons as $lesson)
|
||||||
<a href="{{ route('grades.lessons.show', [$grade, $lesson]) }}" class="text-decoration-none">
|
<a href="{{ route('grades.lessons.show', [$grade, $lesson]) }}" class="text-decoration-none">
|
||||||
@ -33,3 +54,4 @@
|
|||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
`
|
||||||
|
Loading…
Reference in New Issue
Block a user