iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Software Development

持續進化論系列 第 10

DAY10 - 返樸歸真

  • 分享至 

  • xImage
  •  

曾經有遇過應徵者因為太過於依賴框架,導致被問到基礎的 SQL 語法反而答不出來, 用過了非常方便的框架之後,還是得了解一下 SQL 的原理,才不會遇到這種窘境。

Laravel 本身有一個內建好用的 DB Facade 專門處理這件事情,先搭配 Tinker 來做個範例吧

先在 Tinker 紀錄 SQL 的服務
DB::enableQueryLog();

開始查詢資料,這次有多加入一個 where 條件
App\Models\User::with('posts')->with('posts.comments')->where('name', 'kurt')->first()->toArray()

調出 SQL 語法
DB::getQueryLog()

https://ithelp.ithome.com.tw/upload/images/20220910/20115048L6Mzm4hy8Y.png

前面有提到框架已經代替開發者避免了 SQL Injection ,此時可以看到第一句 SQL 使用了 ? 這個符號將其帶入語法中,此種用法稱為「預處理語句」。

當然有些比較複雜的 SQL 或是顯示格式也是可以接用 DB Facade 來下指令,下方做一個 JOIN 的範例
DB::table('posts')->join('users', 'writer_id', '=', 'users.id')->get()
https://ithelp.ithome.com.tw/upload/images/20220910/20115048KN83TSozXP.png

在運用框架進行快速開發的時候也是要知道其原理,才能用的順手也不會用錯,明天終於可以介紹神奇設計了!


上一篇
DAY09 - 輔助參數
下一篇
DAY11 - 奇幻歷險記
系列文
持續進化論30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言