Toggle main menu visibility
下載輕鬆架
套件下載
使用手冊
發問討論
網站地圖
:::
登入
登入
帳號
密碼
登入
:::
所有書籍
「Laravel 5.6 入門講義」目錄
MarkDown
8. 建立新增測驗的操作界面
1. 關於 Laravel
1-1 為何需要框架?
1-2 快速安裝開發環境及開發工具
1-2-1 以XAMPP建立運作環境
1-2-2 Visual Studio Code文字編輯器
1-2-3 安裝 Composer
1-2-4 安裝 GitHub Desktop for Windows
1-2-5 [建議]瀏覽器附加元件
1-2-6 [參考]申請mailtrap帳號
1-2-7 [參考]用Homestead建構開發環境
2. 建立專案
2-1 將專案加入本地端的 git
2-2 將專案放上GitHub
2-3 設定專案環境
2-4 Laravel運作週期
3. 建立使用者認證
3-1 佈署到主機上
3-2 新增語系
3-3 開啟網站並登入
4. 了解路由的運作
4-1 製作系統主樣板
4-2 製作中文語系檔
4-3 修改首頁畫面
4-4 Blade 樣板語法
5. 安裝後台及讀寫機制
5-1 安裝後台的使用者角色管理
5-2 讓閒雜人等不能進入後台
5-3 安裝 laravel-debugbar 方便除錯
6. 建立相關資料表及模型
6-1 編輯並執行測驗(exam)的 migrate 檔案
7. 開始定義系統各項功能
7-1 還沒有控制器的路由寫法
7-2 有控制器的路由寫法
8. 建立新增測驗的操作界面
8-1 安裝marvinlabs/laravel-html-bootstrap-4套件
8-2 建立發布測驗的表單
9. 建立Exam的控制器controller
9-1 修改路由改用控制器
9-2 在視圖中取得使用者編號
9-3 將資料寫進資料庫
9-4 用 fillable 批量賦值寫入
10. 表單驗證及錯誤處理
10-1 建立Request來統一驗證
11. 讀出所有測驗
11-1 讀出時加入各種條件
11-2 加入分頁
12. 讀出單一測驗
12-1 路由模型綁定
12-2 建立並執行題目的Model 及 migrate 文件
12-3 新增題目編輯表單
12-4 儲存題目
12-5 列出題目
12-6 匯入題目
12-7 利用Model查詢資料的方法
12-8 測驗與題目的關聯
13. 利用模型工廠產生隨機題目
13-1 建立Seeder快速填充資料
14. 修改測驗
14-1 更新測驗
14-2 修改題目
14-3 更新題目
15. 刪除題目
15-1 刪除測驗
15-2 加入刪除確認
16. 建立並執行考試的Model 及 migrate 文件
16-1 設定考試與測驗、考生的關聯
16-2 產生考試界面
16-3 儲存並計分
16-4 產生考試結果
17. 安裝設定新北市OpenID登入
17-1 使用新北市OpenID登入
17-2 異動資料表
17-3 修改考試的儲存動作
18. 網站的關閉與啟動
18-1 使用路由前置字串
18-2 使用資源路由
19. 重建由GitHub下載的Laravel專案
8-2 建立發布測驗的表單
Laravel 5.6 入門講義 ================ ### 一、關於marvinlabs/laravel-html-bootstrap-4套件 1. 表單套件非常多,以前講義介紹的GeneaLabs/laravel-casts套件,雖然使用簡單,但其中有不少元件無法正常使用,例如switch或radio。另外netojose/laravel-bootstrap-4-forms套件則是太過陽春,一些比較細節的地方無法施做,例如無法製作水平表單、hidden無法取消label,反而是radio無法加上laebl,雖然無關功能,但對於畫面比較要求者會玩得很痛苦。 2. 因此,在此推薦另一個也是支援bootstrap4的表單套件marvinlabs/laravel-html-bootstrap-4 3. 官網:
4. 安裝 marvinlabs/laravel-html-bootstrap-4 ```bash composer require marvinlabs/laravel-html-bootstrap-4 ``` ### 二、建立表單 1. 預設的 POST 表單,選項部份有需要再填 ```php {{ bs()->openForm('post', '/exam' , [ 其他選項陣列]) }} {{ bs()->closeForm() }} ``` 2. 選項部份 ```php 'files' => true, //需要上傳檔案時 'model' => $exam, //綁預設值時 'hideErrors' => true, //隱藏錯誤 'inline' => true, //行內表單 //自定義表單屬性 'attributes' => [ 'id' => 'create_user_form', 'v-cloack' => '', ] ``` 3. 水平表單並不在這裡設定,而是在各自元件中設定。 ### 三、各種元件用法 1. text 文字輸入框 ```php {{ bs()->input('text', 'username', '吳弘凱')->placeholder('請填入姓名') }} {{ bs()->text('username')->placeholder('請填入姓名') }} {{ bs()->text('username', '小型輸入框')->sizeSmall() }} {{ bs()->text('username', '大型數入框')->sizeLarge() }} {{ bs()->hidden('op', '隱藏欄位') }} {{ bs()->password('pass', '密碼欄位') }} {{ bs()->email('email', 'Email欄位') }} {{ bs()->token() }} ``` 2. textarea 大量文字輸入框 ```php {{ bs()->textArea('content', '這是大量文字框') }} ``` 3. select 下拉選單 ```php {{ bs()->select('enable', ['1' => '開啟', '0' => '關閉'], '1') }} //多選 {{ bs()->select('color', ['red' => '紅色', 'green' => '綠色', 'biue' => '藍色']) ->multiple() ->value(['red', 'green']) ->placeholder('可多選') }} //高興的話placeholder()也可以用第二個參數賦予值 {{ bs()->select('color', ['red' => '紅色', 'green' => '綠色', 'biue' => '藍色']) ->placeholder('請選擇顏色', -1) }} ``` 4. checkbox 方框(不支援複選,欲用複選功能,請用select) ```php {{ bs()->checkbox('remember')->description('記住我') }} //預設勾選 {{ bs()->checkbox('remember')->description('記住我')->checked() }} //整合上方的一行式寫法 {{ bs()->checkbox('remember', '記住我', true) }} //可以自訂值,也可以設成inline {{ bs()->checkbox('remember', '記住我')->value('yes')->inline() }} ``` 5. radio 單選圓框及radioGroup多選項 ```php //不指定值的話,預設的值為1 {{ bs()->radio('enable')->description('啟用') }} //預設勾選 {{ bs()->radio('enable')->description('啟用')->checked() }} //整合上方的一行式寫法 {{ bs()->radio('enable', '啟用', true) }} //可以自訂值,也可以設成inline {{ bs()->radio('enable', '啟用')->value('yes')->inline() }} //多個選項的寫法 {{ bs()->radioGroup('enable', [1 => '啟用', 0 => '關閉']) ->selectedOption(1) ->inline() ->radioDisabled() ->addRadioClass(['bg-light', 'my-3']) }} ``` 6. file檔案上傳(在form裡面務必加入 `'files' => true` ) ```php {{ bs()->file('avatar2', '選擇一個檔案') }} {{ bs()->simpleFile('avatar') }} ``` 7. button 按鈕(共有以下樣式可選:`primary`, `secondary`, `success`, `danger`, `warning`, `info`, `light`, `dark`) ```php {{ bs()->submit('送出按鈕') }} {{ bs()->button('一般按鈕') }} //第二個參數指定樣式,第三個是否為外框按鈕 {{ bs()->button('外框按鈕', 'success', true) }} //把連結做成按鈕 {{ bs()->a('#', '把連結做成按鈕')->asButton('secondary') }} ``` 8. badge徽章(共有以下樣式可選:`primary`, `secondary`, `success`, `danger`, `warning`, `info`, `light`, `dark`) ```php {{ bs()->badge()->text('預設徽章') }} {{ bs()->badge()->text('顯示成藥丸狀')->pill() }} {{ bs()->badge('info')->text('加上連結')->link('#') }} ``` 9. inputGroup 表單元件組(可套用`->sizeSmall()` 或` ->sizeLarge()`來控制尺寸,亦可和 `textarea`及 `button`搭配使用) ```php {{ bs()->inputGroup() ->prefix('共') ->suffix('元') ->control(bs()->text('username')->placeholder('請填入金額')) }} ``` 10. Readonly 唯讀(可套用至text、textarea) ```php {{ bs()->text('username', '這是唯讀的')->readOnly() }} {{ bs()->text('username', '這是唯讀的,而且顯示成一般文字(但仍是欄位)')->readOnly(true) }} ``` 11. Disabled 關閉(可套用至text、textarea、select、checkbox、radio ) ```php {{ bs()->text('username', '這是無效的')->disabled() }} ``` ### 四、一般表單群組用法 1. 只要把底下的「`姓名`」替換成想要的標籤,`bs()->text('username')`換成想要的元件即可。 ```markup {{ bs()->formGroup() ->label('姓名') ->control(bs()->text('username')) ->helpText('請在此填入姓名')}} ``` ### 五、水平表單群組用法 1. 利用`showAsRow()`就可以使用水平表單 2. `label('姓名', false, 'text-sm-right') `的第二個參數是是否使用 `sr-only`,若`true`,標籤會消失(預設為`false`)。第三個參數是可以自行加入額外的class,例如用`text-sm-right`讓標籤只有在螢幕大於576px時才會靠右 。 3. 只要把底下的「`姓名`」替換成想要的標籤,`bs()->text('username')`換成想要的元件即可。 ```markup {{ bs()->formGroup() ->label('姓名', false, 'text-sm-right') ->control(bs()->text('username')) ->showAsRow() }} ``` ### 六、提供兩個視圖元件 1. 警告視窗(`type`可套用 `primary`、`secondary`、`success`、`danger`、`warning`、`info`、`light`、`dark`),原component位於`\專案\vendor\marvinlabs\laravel-html-bootstrap-4\resources\views\alert.blade.php` ```php @component('bs::alert', ['type' => 'info', 'animated' => true, 'dismissible' => true, 'data' => ['alert-id' => 40, 'context' => 'sample-code']]) @slot('heading') info 警告視窗 @endslot
dismissible 右上會出現 x 符號,用來關閉;animated 在關閉時會有漸變效果;data 可以用來設置一些屬性
除了 type 外,其餘參數截可省略
@endcomponent ``` 2. jumbotron巨幕,原component位於`\專案\vendor\marvinlabs\laravel-html-bootstrap-4\resources\views\jumbotron.blade.php` ```php @component('bs::jumbotron', ['fluid' => true]) @slot('heading') 巨幕主標題 @endslot @slot('subheading') 這裡是次標題 @endslot
這裡愛寫啥都行
@slot('actions') {!! bs()->a('#', '這是個連結按鈕')->asButton('primary') !!} @endslot @endcomponent ``` [![到GitHub觀看此單元程式異動](https://campus-xoops.tn.edu.tw/uploads/tad_book3/image/34/to_github.png)](https://github.com/tad0616/exam56/commit/e997cf27bdf8685033a3291f8a5fdc42247928fe)
:::
書籍目錄
展開
|
闔起
快速登入
所有討論區
Tad Search 資料查詢
懶人框架討論區
實戰PHP7+MySQL
XOOPS輕鬆架快速上手
校園網站輕鬆架一般討論區
Booking Helper 預約助手
es_stud_sign 班級報名
es charge 學生收費管理
E-Stud import 學生名冊管理
es_after_school 課後照顧報名
es_exam 學生作業繳交
ES_panel 校務行政面板
es_timetable 課表
ES_youtube 本校影音
info_whats 網路設備記錄
jill booking 場地預約
jill_notice 臨時公告
jill query 簡易查詢
jill receipt 領據填報
kw club 社團報名
kw device 設備借用管理系統
ntpc_oprnid 新北市 OpenID 登入
TinyD嵌入內容模組
ugm contact us 聯絡我們
ugm page 自訂頁面
ugm table 萬用表格
Yaoh Servicelearning 服務學習管理系統
dummy 自訂模組
soone_submit 投稿模組
Tad Adm 站長工具箱
Tad Assignment 作業上傳展示模組
Tad Blocks 進階區塊管理
Tad Book3 線上書籍
Tad Cal 行事曆
Tad Cbox 即時留言簿
Tad Discuss 討論區模組
Tad Embed 崁入模組
Tad Evaluation 評鑑檔案管理
Tad Form 萬用表單模組
Tad FAQ 常見問答
Tad Google 相簿
Tad Gallery 電子相簿
Tad Guide 安裝精靈
Tad Honor 榮譽榜
Tad idioms 背背成語
Tad Link 好站連結
Tad Login 快速登入
Tad Lunch3 午餐資訊
Tad Lunch2 營養午餐公告
Tad Meeting 會議系統
Tad Merage 線上合併套印
Tad News 本站消息
Tad Player 影音播放
Tad RSS 友站新聞
Tad Repair 維修通報
Tad SiteMap網站地圖
Tad Timeline 重要紀事
Tad Themes 佈景管理
Tad Tools 工具包
Tad TV 直播電視
Tad Uploader 檔案上傳模組
Tad Users 大量會員管理
Tad Web 多人網頁模組
MyTabs 我的頁籤
Random Quote 隨機小語
LogCounterX 網站流量統計
Yaoh light 多區塊多層次跑馬燈模組
校園網站輕鬆架功能建議區
佈景討論區
即時留言簿
search
進階搜尋
計數器
今天:
昨天:
總計: