From 619254a20467d57dc9f144b9ae5ba73742e470e3 Mon Sep 17 00:00:00 2001 From: "m.zargarov" Date: Mon, 13 May 2024 14:23:21 +0400 Subject: [PATCH] added filter to lessons --- app/Http/Controllers/LessonController.php | 1 + app/Models/Lesson.php | 10 ++++++++ app/Services/LessonService.php | 2 +- resources/views/grade-lesson/index.blade.php | 24 +++++++++++++++++++- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/LessonController.php b/app/Http/Controllers/LessonController.php index 1c829c5..d33d431 100644 --- a/app/Http/Controllers/LessonController.php +++ b/app/Http/Controllers/LessonController.php @@ -33,6 +33,7 @@ class LessonController extends Controller return view('grade-lesson.index', [ 'lessons' => $this->service->getAll($grade), 'grade' => $grade, + 'subjects' => $grade->subjects, ]); } diff --git a/app/Models/Lesson.php b/app/Models/Lesson.php index a1061b9..3af1d3e 100644 --- a/app/Models/Lesson.php +++ b/app/Models/Lesson.php @@ -2,6 +2,7 @@ namespace App\Models; +use Illuminate\Contracts\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -40,4 +41,13 @@ class Lesson extends Model { 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); + }); + } } diff --git a/app/Services/LessonService.php b/app/Services/LessonService.php index 1aa7bb4..b32a63d 100644 --- a/app/Services/LessonService.php +++ b/app/Services/LessonService.php @@ -12,7 +12,7 @@ class LessonService implements ServiceInterface public function getAll(?Grade $grade = null): Collection { - return $grade->lessons; + return $grade->lessons()->filter()->get(); } public function getGrades(): Collection diff --git a/resources/views/grade-lesson/index.blade.php b/resources/views/grade-lesson/index.blade.php index 34617be..08d752c 100644 --- a/resources/views/grade-lesson/index.blade.php +++ b/resources/views/grade-lesson/index.blade.php @@ -1,4 +1,4 @@ -@extends('layouts.app') +`@extends('layouts.app') @section('content')
@@ -9,6 +9,27 @@ Добавить
+
+
{{__('Фильтрация')}}
+
+
+
+ + +
+
+ +
+
+
+
@if(count($lessons)) @foreach($lessons as $lesson) @@ -33,3 +54,4 @@ @endsection +`