【发布时间】:2019-03-27 14:52:50
【问题描述】:
我正在创建一个教授可以登录的大学管理网站。
我有一个仪表板,应该放置动态生成的按钮:(现在它只有虚拟按钮!)
<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'));
}
我的问题:
为了能够在 URL 中动态生成 {subcode},我想使用数据 $subcodes 在仪表板中创建按钮。控制器移交$subcodes(属于已登录教授的主题代码数组),这些代码将通过show()方法制成按钮。
按钮的名称应为 {subcode},单击时应在 URL 中附加与 {subcode} 相同的主题代码。
- 如何使用
$subcodes并动态制作按钮? - 如何确保为一位用户制作的按钮对另一位用户不可见?
【问题讨论】:
标签: laravel laravel-blade laravel-5.8