Я делаю веб-сайт администрации колледжа, где профессор может войти.
У меня есть панель инструментов, на которой должна быть размещена моя динамически сгенерированная кнопка: (сейчас у нее просто фиктивные кнопки!)
Сгенерированный этим файлом представления, который мне скоро придется изменить:
<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
— это таблица, используемая для сопоставления профессора с классом по предмету. Это гарантирует, что в одном классе есть только один профессор по определенному предмету.
the routes currently in my 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
и сделать кнопки динамическими? - Как сделать так, чтобы кнопки, созданные для одного пользователя, не были видны другому пользователю?