mirror of
https://github.com/robonen/education-project.git
synced 2026-03-20 02:44:31 +00:00
исправление ошибок
This commit is contained in:
@@ -20,7 +20,7 @@ class TimetableFilter extends QueryFilter
|
||||
|
||||
protected function subject($value)
|
||||
{
|
||||
$this->builder = $this->builder->where('type_event', $value);
|
||||
$this->builder = $this->builder->where('subject_id', $value);
|
||||
}
|
||||
|
||||
protected function classroom($value)
|
||||
|
||||
@@ -5,10 +5,9 @@ namespace App\Http\Controllers;
|
||||
use App\Filters\TimetableFilter;
|
||||
use App\Http\Requests\TimetableRequest;
|
||||
use App\Models\SchoolClass;
|
||||
use App\Models\Subject;
|
||||
use App\Models\Teacher;
|
||||
use App\Models\Timetable;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TimetableController extends Controller
|
||||
@@ -22,17 +21,17 @@ class TimetableController extends Controller
|
||||
]);
|
||||
$builder = Timetable::all()->sortBy('timeStart');
|
||||
$timetables = (new TimetableFilter($builder, $request))->apply()->values();
|
||||
$answer = [];
|
||||
$arrayTimetables = [];
|
||||
for ($i = 0; $i < 6; $i++) {
|
||||
$date = Carbon::parse($request->input('date'))
|
||||
->addDays($i)
|
||||
->format('Y-m-d');
|
||||
array_push($answer, [$date => $timetables->where('date', $date)->values()]);
|
||||
array_push($arrayTimetables, [$date => $timetables->where('date', $date)->values()]);
|
||||
}
|
||||
return response()->json($answer, 200);
|
||||
return response()->json($arrayTimetables, 200);
|
||||
}
|
||||
|
||||
//Получение расписания
|
||||
//Получение урока
|
||||
public function show(Timetable $timetable)
|
||||
{
|
||||
return response()->json($timetable, 200);
|
||||
@@ -42,10 +41,11 @@ class TimetableController extends Controller
|
||||
public function store(TimetableRequest $request)
|
||||
{
|
||||
foreach($request->input('timetables') as $timetable) {
|
||||
SchoolClass::findOrFail($timetable['class_id']);
|
||||
Teacher::findOrFail($timetable['teacher_id']);
|
||||
Subject::findOrFail($timetable['subject_id']);
|
||||
try {
|
||||
Timetable::create($timetable);
|
||||
}catch (QueryException $e) {
|
||||
return response()->json(['message' => 'Not found class, teacher or subject'], 400);
|
||||
}
|
||||
}
|
||||
|
||||
return response()->json(['message' => 'Timetable was created'], 201);
|
||||
@@ -62,10 +62,11 @@ class TimetableController extends Controller
|
||||
'time_start' => 'required|date_format:H:i',
|
||||
'time_end' => 'required|date_format:H:i|after:time_start',
|
||||
]);
|
||||
SchoolClass::findOrFail($request->input('class_id'));
|
||||
Teacher::findOrFail($request->input('teacher_id'));
|
||||
Subject::findOrFail($request->input('subject_id'));
|
||||
try {
|
||||
$timetable->update($request->all());
|
||||
}catch (QueryException $e) {
|
||||
return response()->json(['message' => 'Not found class, teacher or subject'], 400);
|
||||
}
|
||||
return response()->json(['message' => 'Timetable was updated'], 200);
|
||||
}
|
||||
|
||||
@@ -75,4 +76,5 @@ class TimetableController extends Controller
|
||||
$timetable->delete();
|
||||
return response()->json('', 204);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,15 +19,7 @@ class TimetableRequest extends ApiFormRequest
|
||||
'timetables.*.subject_id' => 'required|integer|gt:0',
|
||||
'timetables.*.date' => 'required|date_format:Y/m/d|',
|
||||
'timetables.*.time_start' => 'required|date_format:H:i',
|
||||
//'timetables.*.time_end' => 'required|date_format:H:i|after:time_start',
|
||||
/*'week' => 'required|array',
|
||||
'week.*.day' => 'required|array',
|
||||
'week.*.day.*.class_id' => 'required|integer|gt:0',
|
||||
'week.*.day.*.teacher_id' => 'required|integer|gt:0',
|
||||
'week.*.day.*.subject_id' => 'required|integer|gt:0',
|
||||
'week.*.day.*.date' => 'required|date_format:Y/m/d|',
|
||||
'week.*.day.*.time_start' => 'required|date_format:H:i',
|
||||
'week.*.day.*.time_end' => 'required|date_format:H:i|after:time_start',*/
|
||||
'timetables.*.time_end' => 'required|date_format:H:i',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
15
app/Models/AcademicPlan.php
Normal file
15
app/Models/AcademicPlan.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class AcademicPlan extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
protected $primaryKey = ['subject_id', 'class_id'];
|
||||
|
||||
public $incrementing = false;
|
||||
}
|
||||
@@ -19,4 +19,10 @@ class SchoolClass extends Model
|
||||
{
|
||||
return $this->hasMany(Student::class);
|
||||
}
|
||||
|
||||
public function subjects()
|
||||
{
|
||||
return $this->belongsToMany(Subject::class, 'academic_plans')->withPivot('hours_per_week', 'hours_per_year');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,4 +17,10 @@ class Subject extends Model
|
||||
{
|
||||
return $this->hasMany(BankTask::class);
|
||||
}
|
||||
|
||||
public function schoolClasses()
|
||||
{
|
||||
return $this->belongsToMany(SchoolClass::class, 'academic_plans')->withPivot('hours_per_week', 'hours_per_year');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateAcademicPlansTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('academic_plans', function (Blueprint $table) {
|
||||
$table->unsignedInteger('subject_id');
|
||||
$table->unsignedInteger('class_id');
|
||||
$table->unsignedInteger('hours_per_week');
|
||||
$table->unsignedInteger('hours_per_year');
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('subject_id')
|
||||
->references('id')->on('subjects')
|
||||
->onDelete('cascade');
|
||||
$table->foreign('class_id')
|
||||
->references('id')->on('school_classes')
|
||||
->onDelete('cascade');
|
||||
|
||||
$table->primary(['subject_id', 'class_id']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('academic_plans');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user