GDSC NCU Core Team Member
@Wama
Wed, Mar 23, 7:00 PM
About Me
Wama
工學院網管 - 1 year
新生知訊網 2022 總召
NCU App 109 負責人
SITCON 2022 行政組長
COSCUP 2021 製播組
HITCON 2021 報到股長
今天會寫到的 source code
回顧上週...
看看現在有哪些 route
如果你發現這個錯誤訊息...
因為這是熱騰騰ㄉ新功能,
需要更新
更新一下
再試一次(如果還是不行,就把 --except-vendor 拿掉)
(依照慣例,course 應該要用複數,但怕大家和上週內容搞混先不細講,最後提到 naming convention)
你會發現很多和 course 有關的 route
對照之前寫的 web.php …
可以發現 resource 其實幫你自己產生很多個 route
Controller Group – Laravel 9 的新功能!!
你會發現這裡有錯誤
route(‘XXX’)
what’s that 🧐
但要先幫 route 取名字(Route::resource 有幫忙取名)
resource 幫我做那麼多事,那為什麼要改成這樣...
Other Functions in CourseController.php
接續 CRUD 操作
show
CourseController::class�get('/course/{course}', 'show')
web.php
CourseController.php
show.blade.php
view(‘show’, [...])
去 web.php 新增 route
在 CourseController 裡新增 show function
然後新增 show.blade.php
去 index.blade.php 加一下連結
(為了可讀性,我有偷偷把 $c 改成 $course)
Other Functions in CourseController.php
接續 CRUD 操作
✓
web.php
CourseController.php
show.blade.php
view(‘show’, [...])
TeacherController.php
show.blade.php
view(‘show’, [...])
?
view(‘XXX’)
what’s that 🧐
web.php
CourseController.php
show.blade.php
view(‘show’, [...])
TeacherController.php
show.blade.php
view(‘show’, [...])
?
web.php
CourseController.php
show.blade.php
view(‘show’, [...])
TeacherController.php
show.blade.php
view(‘show’, [...])
✘
web.php
CourseController.php
show.blade.php
view(‘show’, [...])
TeacherController.php
view(‘show’, [...])
web.php
CourseController.php
courses/�show.blade.php
view(‘courses.show’, [...])
TeacherController.php
teachers/�show.blade.php
view(‘teachers.show’, [...])
✓
view(‘XX.xx’)
what’s that 🧐
再把 ‘show’ 改成 ‘courses.show’ 就完成ㄌ
(其他有用到 view(‘...’) 的也要記得改,不然他找不到這個名字會報錯)
(為了可讀性,我有偷偷把 $c 改成 $course)
然後就可以把連結加到 index.blade.php 了!
等等... 這裡還有一個黑魔法
等等... 這裡還有一個黑魔法
Route Model Binding
Other Functions in CourseController.php
接續 CRUD 操作
✓
edit
更新 course 的過程
web.php
GET
'/course/{course}'
更新資料庫內容
CourseController.php
function edit()
edit.blade.php
POST
'/course/{course}'
function update()
更新 course 的過程
web.php
GET
'/course/{course}/edit'
更新資料庫內容
CourseController.php
function edit()
edit.blade.php
PUT
'/course/{course}'
function update()
去 web.php 新增 route
在 CourseController 裡新增 edit function
然後新增 edit.blade.php
修改一下 edit.blade.php,把舊資料帶進去
在 show.blade.php(或任何你想要的地方)加上連結
Other Functions in CourseController.php
接續 CRUD 操作
✓
✓
update
更新 crouse 的過程
web.php
GET
'/course/{course}'
更新資料庫內容
CourseController.php
function edit()
edit.blade.php
POST
'/course/{course}'
function update()
在 CourseController 裡新增 update function
告訴 laravel 這個 Model 哪些欄位是允許更改的
更新 crouse 的過程
web.php
GET
'/course/{course}'
更新資料庫內容
CourseController.php
function edit()
edit.blade.php
POST
'/course/{course}'
function update()
完成啦 🎉
Other Functions in CourseController.php
接續 CRUD 操作
✓
✓
✓
destroy
刪除 crouse 的過程
web.php
刪除資料庫內容
CourseController.php
DELETE
'/course/{course}'
function destroy()
去 web.php 新增 route
在 CourseController 裡新增 destroy function
刪除 crouse 的過程
web.php
刪除資料庫內容
CourseController.php
DELETE
'/course/{course}'
function destroy()
在 show.blade.php (或其他你喜歡的地方)新增刪除的按鈕
HTML 沒有支援 delete
blade 會幫你換成:
Other Functions in CourseController.php
接續 CRUD 操作
✓
✓
✓
✓
Naming Convention
reference: https://github.com/alexeymezenin/laravel-best-practices#follow-laravel-naming-conventions
有些黑魔法是來自這些小默契ㄉ
Controller | UserController |
Route | users/1 |
Named route | users.show |
Model | User |
(依照慣例,course 應該要用複數)
如果還有時間...
Laravel II
GDSC NCU Core Team Member
@Wama
End
END
Presentation Title
Firstname Lastname
@firstnamelastname
Subtitle Goes Here
Presentation Title
Firstname Lastname
@firstnamelastname
Subtitle Goes Here
Presentation Title
Firstname Lastname
@firstnamelastname
Subtitle Goes Here
Presentation Title
Firstname Lastname
@firstnamelastname
Subtitle Goes Here
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Headline
Subtitle
protected void onTryUpdate(int reason) throws RetryException {
// Do some awesome stuff
int foo = 15;
publishArtwork(new Artwork.Builder()
.title(photo.name)
.imageUri(Uri.parse(photo.image_url))
.viewIntent(new Intent(Intent.ACTION_VIEW,
Uri.parse(“http://500px.com/photo/" + photo.id)))
.build());
scheduleUpdate(System.currentTimeMillis() + ROTATE_TIME_MILLIS);
}
Headline
Subtitle
Headline
Subtitle
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed sagittis accumsan dolor ut malesuada. Duis sit amet placerat quam. Donec eget eros egestas nunc venenatis suscipit at at felis. Duis sit amet placerat quam.
Headline
Subtitle
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum.
Headline
Subtitle
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida placerat dictum. Sed
30%
Anytime I’m involved with anything that’s well-received, it’s a surprise to me.
Anytime I’m involved with anything that’s well-received, it’s a surprise to me.
Anytime I’m involved with anything that’s well-received, it’s a surprise to me.
Anytime I’m involved with anything that’s well-received, it’s a surprise to me.
Colors, Charts, and Icons
Color
Google Blue
Hex: #4285f4
Google Red
Hex: #e84435
Google Green
Hex: #0f9d58
Google Yellow
Hex: #fbbc04
Google Light
Hex: #f9f9f9
Google Dark Grey
Hex: #404040
Google Lt Blue
Hex: #BBDEFB
Google Lt Red
Hex: #FFCDD2
Google Lt Green
Hex: #C8E6C9
Google Lt Yellow
Hex: #FFECB3
Google Grey
Hex: #676c72
Chart Elements
Build your visuals using the 30pt grid. Build layouts that snap to grid-lines or sit in-between. For details on using the grid please see getting started.
Caption
Large Box
Caption
40pt Caption
6pt Object Border
Medium Box
Caption
Caption
Caption
Caption
Small Box
6pt Object Border
Caption
Use for nested items only
8pt Corner Radius
30pt Caption
25pt Caption
Labels
Label
Label
Round Corner Radius
30pt Caption
Arrows
Simple Charts: 6pt
Complex Charts: 5pt
Simple chart
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
All-purpose Chart
Step A
Step B
Step C
Short Label
Step D
Step E
Process Chart
Column Label
Caption 10�Two lines
Caption 9�Two lines
Caption 8�Two lines
Caption 7�Two lines
Caption 6�Two lines
Caption 5�Two lines
Caption 4�Two lines
Caption 3�Two lines
Caption 2�Two lines
Caption 1�Two lines
Group Label
Column Label
Column Label
Column Label
Flow-Style Chart
Start
Two or Three �Line Caption
Step A
Step B
Step C
Step D
Bridge Caption
Decision� Node?
Yes
End
Step E
Step F
No
Bridge Caption
Bridge Caption
Bridge Caption
Group Chart
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Process Chart
Short Label
Short Label
Short Label
Short Label
Item A
Item B
Item C
A
B
C
D
E
Layer 1
Big Portfolio Chart
Label One
Short Label
Short Label
Short Label
Label Two
Label Three
Label Four
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Short Label
Chart title
2012
2014
2016
2018
2020
Category�Label One
Caption 1�Two lines
Caption 3�Two lines
Caption 2�Two lines
Caption 5�Two lines
Caption 4�Two lines
Caption 6�Two lines
Caption 7�Two lines
Caption 9�Two lines
Caption 8�Two lines
Category�Label Two
Icons
Accessibility
Expand
Late
Credit card
Extension
Thumb Up
Remove
Verified
Q&A
Finance
Android
Turn in
Trash
Actions
Download
History
Store
List
Wallet
Announcement
Backup
Document
Favorite 1
Open
Home
Swap
Account
Ratio
Tag
Server
Favorite 2
Grade/rate
Lock
Language
Receipt
Add shopping
Chart
Bug
Event
Find Page
Page view
Basket
Time
Work
All icons are vector objects and can �be recolored using the fill menu.
Icons
Alarm
Assessment
Sync
Exit App
Movie
Visibility
Trolley
Open
Location
Settings
Assignment
Check
Explore
Thumb Down
Today
Perm Media
People
search
Airplane
Signal
Photo
Play 1
Block
Send
Smartphone
Style
Walk
Bluetooth
WiFi
Upload
Play 2
Laptop
iPhone
Controls
Bike
Pie Chart
Money
Attachment
Video
Business
Chromebook
Security
Notification
Bus
All icons are vector objects and can �be recolored using the fill menu.
Icons
Developer
Write
Cloud
Audio
Key
Desktop Mac
Watch
Person
Car
Devices
Quote
Folder
Web Page
Archive
Desktop PC
Flag
World
Boat
Software
Emotion
Mic
Call
Cut
headphones
Camera
Education
Train
Weather
Link
Movie
Chart
Paste
Keyboard
TV
MMS
Subway
Hotel
Laundry
Location History
Layers
Offer
Map
Bar
Pizza
Web
All icons are vector objects and can �be recolored using the fill menu.
Icons
Cafe
Theatre
Gaming
Florist
Restaurant
Gas
Delivery
Hospital
Taxi
Radio
Stream
All icons are vector objects and can �be recolored using the fill menu.
Flags
Americas
APAC
EMEA
US
MX
CA
AR
AU
AT
BE
CH
DE
ES
GB
IE
IT
NL
BO
BR
CL
CO
CR
EC
SV
GT
HN
NI
PA
PE
UY
HK
ID
IN
AU
JP
KR
MY
NZ
PH
SG
TH
TW
FR
Nordics
PT
Device Library
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Logo Library
Logos can be scaled to any size