Я делаю сайт администрации колледжа, где профессор может войти.
У меня есть панель инструментов, где должна быть размещена моя динамически сгенерированная кнопка: (сейчас у нее просто фиктивные кнопки!)
Сгенерированный этим файлом представления, который я скоро должен буду изменить:
<div class="container d-flex flex-column align-items-center justify-content-center">
<h1>IA DASHBOARD</h1>
<br>
<div class="grid2">
<a href="{{ url('/subcode/{subcode}') }}" ><button class="btn btn-outline-primary btn-custom-outline-primary btn-custom">SUBCODE 1</button></a>
<a href="{{ url('/subcode/{subcode}') }}" ><button class="btn btn-outline-primary btn-custom-outline-primary btn-custom">SUBCODE 2</button></a>
<a href="{{ url('/subcode/{subcode}') }}" ><button class="btn btn-outline-primary btn-custom-outline-primary btn-custom">SUBCODE 3</button></a>
</div>
Таблицы в базе данных:
- таблица
iamarks
содержит данные (информация об ученике и оценки), которые должны отображаться после /subcode/{subcode}
, сужает их до записей только тех студентов, которые в классе назначены текущему вошедшему в систему профессору.
classroom_mappers
- таблица, используемая для отображения профессора в классе с предметом. Это гарантирует, что в одном классе есть только один профессор по определенному предмету.
маршруты в настоящее время в моем web.php :
route::get('/ia', 'IAController@show')->middleware('auth');
Route::get('/subcode/{subcode}', 'IAController@showTable')->middleware('auth');
... а вот методы внутри моего контроллера:
//shows buttons to the user:
public function show(){
$subcodes = DB::table('classroom_mappers')
->select('subcode')
->where([['PID','=', auth()->user()->PID]])
->get();
return view('ia',compact('subcodes'));
}
//when user clicks a button, subcode is to be generated and a table is to be shown:
//it works, I tried it by manually typing in subcode value in URL.
public function showTable($subcode){
$sem = DB::table('classroom_mappers')
->where([['PID','=', auth()->user()->PID],
['subcode','=',$subcode]])
->pluck('semester');
$division = DB::table('classroom_mappers')
->where([['PID','=', auth()->user()->PID],
['semester','=',$sem],
['subcode','=',$subcode]])
->pluck('division');
$data = DB::table('iamarks')
->where([['semester','=',$sem],
['division','=',$division],
['subcode','=',$subcode]])
->get();
return view('subcode',compact('data'));
}
Моя проблема:
Чтобы иметь возможность динамически генерировать {subcode}
в URL, я хочу создать кнопки на приборной панели, используя данные $subcodes
. Контроллер передает $subcodes
(массив предметных кодов, принадлежащих зарегистрированному профессору), которые должны быть превращены в кнопки из метода show()
.
Кнопки должны иметь имя {subcode}
и при нажатии должны добавлять тот же код темы в URL, что и {subcode}
.
- Как использовать
$subcodes
и динамически создавать кнопки?
- Как сделать так, чтобы кнопки, сделанные для одного пользователя, не были видны другому пользователю?