exam.show
)列出該測驗標題,及所有題目和選項解答,同時,又可以在該頁面放個表單以方便建立新題目。這樣該怎麼做?首先,先來放個表單。
Route::get('/exam/{exam}', 'ExamController@show')->name('exam.show');
也就是執行的控制器是ExamController@show
,所以,我們開啟/專案/app/Http/Controllers/ExamController.php
,找出裡面的show()
來看看其前端是送到哪裡去!我們好在該樣板產生一個題目用的表單。
public function show(Exam $exam)
{
return view('exam.show', ['exam' => $exam]);
}
由view()
可以得知,會套用/專案/resources/views/exam/show.blade.php
,所以,我們開啟它,然後在裡面加入表單的語法:
@can('建立測驗')
{{ bs()->openForm('post', '/topic') }}
{{ bs()->formGroup()
->label('題目內容', false, 'text-sm-right')
->control(bs()->textarea('topic')->placeholder('請輸入題目內容'))
->showAsRow() }}
{{ bs()->formGroup()
->label('選項1', false, 'text-sm-right')
->control(bs()->text('opt1')->placeholder('輸入選項1'))
->showAsRow() }}
{{ bs()->formGroup()
->label('選項2', false, 'text-sm-right')
->control(bs()->text('opt2')->placeholder('輸入選項2'))
->showAsRow() }}
{{ bs()->formGroup()
->label('選項3', false, 'text-sm-right')
->control(bs()->text('opt3')->placeholder('輸入選項3'))
->showAsRow() }}
{{ bs()->formGroup()
->label('選項4', false, 'text-sm-right')
->control(bs()->text('opt4')->placeholder('輸入選項4'))
->showAsRow() }}
{{ bs()->formGroup()
->label('正確解答', false, 'text-sm-right')
->control(bs()->select('ans',[1=>1, 2=>2, 3=>3, 4=>4])->placeholder('請設定正確解答'))
->showAsRow() }}
{{ bs()->hidden('exam_id', $exam->id) }}
{{ bs()->formGroup()
->label('')
->control(bs()->submit('儲存'))
->showAsRow() }}
{{ bs()->closeForm() }}
@endcan
一樣要用@can()
來判斷權限,免得其他人來胡亂新增題目
記得設定exam_id
隱藏欄位,並利用$exam->id
來取得目前測驗編號,如此,才知道此題目是屬於那一個測驗的。