Есть несколько способов сделать это с Laravel, но обычно я создаю один шаблон лезвия для каждого представления (приборной панели, предмета и т. Д.), Который может динамически заполняться - при условии, что макет для каждого предмета вид такой же.
В виде панели инструментов вы можете сгенерировать URL для каждой кнопки, которая использует такой формат: http://cas.jce.in/subject/semester/5/division/a/
Затем создайте маршрут, который использует пару параметров, примерно так:
Route::get('/subject/semester/{semester_id}/division/{division_id}', 'ControllerName@showSubject');
Подробнее здесь: https://laravel.com/docs/5.8/routing#required-parameters
Затем добавьте в свой контроллер функцию showSemester, например:
function showSubject($semester_id, $division_id){
$data = DB::table('table_name')->where('semester', '=', $semester_id)->where('division', '=', $division_id)->first();
return view('subject', ['data'=>$data, 'semester'=>$semester_id, 'division'=>$division_id]);
}
Параметры вашего маршрута доступны контроллеру в порядке их появления. Таким образом, мы можем добавить $ semester_id и $ Division_id в качестве первых двух параметров нашей функции. Далее мы перейдем к работе с базой данных, чтобы получить нужные нам данные, прежде чем возвращать все в представление.
Обратите внимание, что мы используем одно представление, а не выбираем его динамически. Вы можете создать отдельные представления для каждого предмета, но я думаю, что вам, вероятно, не нужно, если макет каждого из них не является уникальным в некотором роде. В этом случае вы можете просто сделать что-то подобное, но я обычно стараюсь избегать этого.
$view = 'subject'.$data->subject_id;
return view($view, ['data'=>$data, 'semester'=>$semester_id, 'division'=>$division_id]);
Кроме того, просто быстрое примечание ... вы можете подумать о том, чтобы настроить запросы к вашей базе данных сверху, чтобы использовать оператор выбора, а не pluck. Конечный результат тот же, но использование выбора может повысить производительность, загружая только те данные, которые вам нужны ... вместо того, чтобы загружать все заранее и выбрасывать большую часть.
$sem = DB::table('classroom_mappers')->where('Prof_ID', Auth()->user()->PID)->pluck('semester');
... становится ...
$sem = DB::table('classroom_mappers')->select('semester')->where('Prof_ID', auth()->user()->PID)->get();