12-4
儲存題目
- 先建立儲存題目的路由
Route::post('/topic', 'TopicController@store')->name('topic.store');
-
因為我們還沒有題目的控制器,所以,先在終端機中建立之:
php artisan make:controller TopicController --resource
-
如此,會產生 /專案/app/Http/Controllers/TopicController.php
,開啟之,找到 store()
函數,修改之:
public function store(Request $request)
{
$topic = Topic::create($request->all());
return redirect()->route('exam.show', $topic->exam_id);
}
-
我們希望儲存會回到原畫面,以便繼續新增題目,故route()
一樣指向到 exam.show
,並將測驗的編號$topic->exam_id
傳到路由中。詳情: https://laravel-china.org/docs/laravel/5.6/routing/1363#redirect-routes
-
另外,上方記得加上以下語法,如此Topic::create()
才能使用
use App\Topic;
-
由於是用批量賦值的寫法,所以記得到 /專案/app/Topic.php
設定哪些欄位可以使用 fillable。
-
修改 /專案/app/Topic.php
其內容為:
class Topic extends Model
{
protected $fillable = [
'topic', 'exam_id', 'opt1', 'opt2', 'opt3', 'opt4', 'ans',
];
}
- 批量賦值詳情可參考: https://laravel-china.org/docs/laravel/5.6/eloquent/1403#c7d398