# Laravel + Vue.js 入門筆記
###### tags: `Laravel`
## Laravel + Vue.js 入門 - CRUD - 01
### XAMPP 安裝
**XAMPP**
| 單字 |意思 |
| -------- | -------- |
| x | 作業系統 (跨3個作業系統) |
| a | apach |
| m | MariaDB |
| p | php |
| p | perl |
**這邊要注意:** 請不要將xampp作為架站工具,很容易被駭客入侵攻擊
xampp/htdocs => 可以放專案資料夾
**XAMPP下載路徑**
https://www.apachefriends.org/zh_tw/download.html
下載完成後進入安裝的目錄,
將xampp設定為管理員開啟
![](https://i.imgur.com/5IEz2xV.png)
**Netstat:** 可以查詢port號是否被其他專案搶走,
**例如:** IIS有正在執行的專案等
![](https://i.imgur.com/iGIHQ41.png)
如果有被搶走則要更改port號,如果有重複的port被使用,可以進到裡面修正
![](https://i.imgur.com/XlW5ZA5.png)
![](https://i.imgur.com/VXDLe0r.png)
![](https://i.imgur.com/kQOS7PX.png)
![](https://i.imgur.com/Jqy5Yxe.png)
回到XAMPP 點選左邊panel cocnfig,進入此面板
![](https://i.imgur.com/VveIUJA.png)
將port設定剛剛設定的port號
![](https://i.imgur.com/vVnMAb1.png)
儲存完成後重啟apach即可!
### 開啟phpMyAdmin
admin 可開啟mysql管理介面
![](https://i.imgur.com/vEnSGww.png)
**常用頁籤**
瀏覽=> 紀錄的資料
第一個欄位通常都是id => Laravel 統一規定
欄位命名都是英文, 空白用底線代替
日期 => on
時間 => at
日期+時間 => at
結構=> 多少欄位, 及欄位屬性
鑰匙=>代表主鍵 , 空值null(不可) ,AUTO_INCREMENT(自動累加1), 更多(可以看到更多)
一個表 varchar 不能超過6535 (累加) , 這是規定
**類型**
| Column 1 | Column 2 |
| -------- | -------- |
| varchar(255) | 動態儲存, 字元最大長度只有255字元 |
| text | 沒有限定字元長度 |
| datetime current_timestamp() | 當下時間碼 |
**編碼**
utf8mb4_general_ci => 可儲存表情符號
![](https://i.imgur.com/nz2Ik1V.png)
![](https://i.imgur.com/iBXuEhB.png)
新增完左下角按儲存
匯出資料表要注意的地方
![](https://i.imgur.com/JWilHXA.png)
### Laravel安裝
將專案安裝在xampp/htdocs底下
開啟常用的命令提示
##### 指令
composer create-project --prefer-dist laravel/laravel="7.x" project_03
翻譯: 建立一個專案 / 想要的發行版本號 laravel=7.X / 專案名稱
![](https://i.imgur.com/OOD5nmY.png)
### 安裝完成
開啟專案
在本機端做開啟 :
http://localhost/project_03/public/
但是通常不會有public,可以使用其他方式隱藏
![](https://i.imgur.com/PLWedwZ.png)
**常用指令**
cd : 此資料夾
cd.. : 上一層資料夾路徑
cd xampp : 進入此資料夾
ls : 列出清單
laravel官網
https://laravel.tw/docs/5.3/installation
---
## Laravel + Vue.js 入門 - CRUD - 02
### Larvel
Laravel為"全端型MVC框架"
#### Larvel路由位置
路由放置在routes/web.php ("在這裡的路由不能隨便做刪除")
![](https://i.imgur.com/n6tkpcS.png)
![](https://i.imgur.com/ldw9Qoj.png)
#### Larvel套件管理器
packalyst套件管理器,與前端npm套件管理器雷同
https://packalyst.com/
---
#### 進入phpmyadmin資料庫
先前有設定了新的port號,因此要用先前的port號登入
http://localhost:83/phpmyadmin/
#### laravel 登入功能
##### login
開放註冊表單: 一開出來沒有權限控管, 搜索引擎會被爬蟲抓到
##### 忘記密碼
資料庫設定上編碼:
mb4=>可以存取表情符號emoji
utf8mb4_unicode_ci=>影響關係到排序
更大的unicode的字體集
##### Laravel專案 env檔案(環境設定檔案)修改
| Column 1 | Column 2 |
| -------- | -------- |
| DB_CONNECTION=mysql | 資料庫名稱 |
| DB_HOST=127.0.0.1 | 預設location,虛擬主機 |
| DB_PORT=3306 | 預設host |
| DB_DATABASE=project_03 | 專案名稱,資料庫名稱 |
| DB_USERNAME=root | 不能這樣上線(測試可以這樣用) |
| DB_PASSWORD= | 密碼(測試可以這樣用) |
備註: 上傳到github可能**不會有**env檔案,可以從env.example檔案複製過來做修正
##### laravel 命名規則
建立資料庫的資料表,
laravel命名習慣是使用小寫複數
laravel有一個翻譯器,會自動將資料庫和Laravel的APP做連結
只要設定好env檔案,因為MVC,所以會自動去抓資料對照表並且串連起來
https://webdevetc.com/blog/laravel-naming-conventions
#### 資料庫
通常資料表這3個是固定並自動管理的,因此不需要管他
![](https://i.imgur.com/dm8oJtt.png)
認證機制是內建的,因此users Table不需要手動增加
##### 註冊完成後密碼會加密
![](https://i.imgur.com/Wq7DklD.png)
#### 安裝套件
##### 安裝 LaravelUI
###### 指令
composer require laravel/ui
---
**安裝上有遇到幾個問題因此做個紀錄: **
1. laravel8.x 對應 UI 3.x
但是因為安裝的laravel是7.x版本 2.x
所以要降級
降級指令: **composer require laravel/ui:2.0**
![](https://i.imgur.com/0mN74CX.png)
2. 遇到版本太低
![](https://i.imgur.com/gUCpvz9.png)
使用升等命令: composer selfupdate
3. 遇到內存不足
![](https://i.imgur.com/hfYGeOf.png)
進入php.ini修改,存檔後重啟
![](https://i.imgur.com/WOUuJFs.png)
![](https://i.imgur.com/1R54XzR.png)
##### 安裝 bootstrap -- auth
php artisan => 針對app命令指令工具
###### 指令
這邊使用最單純的裝法,指令:
php artisan ui bootstrap --auth
安裝好後,需要重新編譯一次
![](https://i.imgur.com/CoSooQ4.png)
但是這邊先引用CDN做快速開發,
laravel是MVC框架,前端框架都放在resources資料夾裡面,
並且compiler完成後會打包成一個js檔案
剛安裝的認證機制auth都放在views裡面,尚未有UI
resolve-url-loader=> 則放置(views)
![](https://i.imgur.com/ErBClYf.png)
![](https://i.imgur.com/9vGxv6a.png)
laravel-mix,是用來打包前端框架
views/layouts/app.blade.php
![](https://i.imgur.com/iQYhNfl.png)
打包好的前端框架會產生一大包的app.js,因此會掛於asset('js/app.js')
因此在laravel的前端思路是使用webpack所打包出來的
在這邊引用CDN
#### 將資料表傳進資料庫裏面(將資料表建立起來)
**註冊表單**
指令: php artisan migrate
migrate在laravel裡面意旨: 把資料表建立起來
位於: database/migrations,將裡面的資料轉換成sql語言並傳送至資料庫
![](https://i.imgur.com/qloH6OM.png)
routes: laravel路由
![](https://i.imgur.com/jzaiEi0.png)
**網址連結**
命名規則: https://webdevetc.com/
官方網站: https://laravel.com/docs/7.x/frontend
## Laravel + Vue.js 入門 - CRUD - 03
https://www.facebook.com/Arthur.ShengBo.Chen/videos/10224374148718216/
查詢php版本:
開啟命令提示字元
指令: php -v
![](https://i.imgur.com/Nild0QZ.png)
**Laravel**
MVC框架(module view controller)
1. 屬於restful Json架構
2. 上面的網址都是API(路由)
**傳統的呼叫模式 (查詢字串)**
![](https://i.imgur.com/aHgrbBp.png)
**現在的呼叫模式 restful (/格式設計)**
用斜線分隔名跟值
![](https://i.imgur.com/gbQ6fvB.png)
因此laravel使用路由Route設計(網址 = api),所以要先設計路由
**大專案流程:**
資料庫>資料表先設計好再談route
**設計四大方向:**
路由/資料模型/視圖/控制
模組module、路由router、視圖view、控制器controller
**Larvral 自動化技術:**
laravel命名規則方式必須要注意,因為有半自動化的機制,因此大小寫、單複數如果下錯,都會報錯
XAMPP要與php 同版本,否則會出錯
php artisan:查詢指令
compose 是作為管理php套件
**route**
列出內建路由:
php artisan route:list
![](https://i.imgur.com/K8BxtJT.png)
URI/Name: 半自動化機制命名
Action: 到Controller裡面的function
Middleware: 認證機制是否有擋掉
**routes/web.php 為例: **
![](https://i.imgur.com/oIRkQBJ.png)
Auth:routes();
位置:
![](https://i.imgur.com/iO8gwhG.png)
在此處單複數一定要相同,在此處User是一個特殊資料表,laraval指定要將它額外提出
從User.php檔案編譯後(php artisan migrate migrate)傳送至資料庫
如果要新建立的話,可以新建一個資料夾為Models,將新建的controller放置在此處,不要放在app底下,會很難管理
建立Models指令語法範例: php artisan make:model Http\Models\Person
![](https://i.imgur.com/zlKSULa.png)
<br/>
laravel目前使用blade樣板引擎,因此切板會在blade進行
storage: 快取檔案
![](https://i.imgur.com/VbenX0U.png)
<br/>
**Laravel使用的引擎**
Eloquent ORM: 自動串聯資料表資料庫,也就是說建立資料庫的連結,一種包裝語法
https://laravel.com/docs/8.x/eloquent
Query Builder: 不管資料庫連結到哪個資料引擎,都是一模一樣
因此對SQL要有一定的基礎
**VSCODE外掛介紹**
Favorites
參考文章
[MVC維基百科](https://zh.wikipedia.org/zh-tw/MVC)
---
<br/>
## Laravel + Vue.js 入門 - CRUD - 04
**建立Controller**
1. 這邊以Person為範例,先在routes定義方法
![](https://i.imgur.com/VDW44rn.png)
2. 建立控制器Controller
指令:php artisan make:controller PersonController (建立完成後會發現是空的頁面,此處指令要自己手動在Controller輸入)
指令:php artisan make:controller PersonController --resource (將7種方法都建立)
![](https://i.imgur.com/XAJfhDT.png)
![](https://i.imgur.com/7CUc76H.png)
定義參數的寫法,參考
https://github.com/laravel/framework/issues/19477
查詢是id是否有命名成功,指令:php artisan route:list
![](https://i.imgur.com/2vDRZJx.png)
**views**:
resources/views
要新增頁面的話建議要新增資料夾,
在這邊以persons為例子,
常例來說如果要新增方法(函式)則以方法命名
![](https://i.imgur.com/V4gnLdd.png)
laravel是動態樣板
laravel以blade為樣板引擎
樣板語言小抄: https://gist.github.com/CiprianSpiridon/f4d7fe0d8a51f0714b62
https://shortcode.dev/blade-cheatsheet
https://learninglaravel.net/cheatsheet/
**補充:**
vue,angule => javascript動態合併樣板
php => php動態合併樣板
pug => 靜態合併樣板
laravel動態合併樣版效能比較慢,所以會有快取機制,位於storage,將樣板做動態合併之後,放入storage/framework/cache裡面,才做上線,
所以執行的時候不見得是執行樣板檔案,執行的時候是執行樣板被快取之後的檔案,做為執行增加效率
如果是在views出錯,除錯的訊息都是放在storage裡面,指向會比較不明顯
如果是controller出錯,會比較明顯,會有行數提示
laravel流程:
從route呼叫網址=>
第一個順序會前往controller的Index,
![](https://i.imgur.com/QdvT2uJ.png)
---
## Laravel + Vue.js 入門 - CRUD - 05
laravel 為全端型的框架,
網站入口點從route進入,因此一開始都先從路由做設定,每一個路由都是一個網址
重心點都會在Controller,Models最少,
第二低是Views
blade樣板引擎會將前端工程師撰寫的翻譯成php檔案
laravel 中文文檔 7.x
https://learnku.com/docs/laravel/7.x
<br/>
**blade語法**
@extends('layouts.app') => 套用母版
@section('content') => 填充 , @endsection(關閉@section,一定要有)
@yield('content') => 套用內頁
if end if寫法:
@if (session('success'))
{{ session('success') }}
@endif
補充: laravel裡面put/patch/delete是沒有頁面,使用的是post,並且是模擬出來的,因此如果是delete,則要使用form表單,並且使用偽造方法
@method('DELETE')
![](https://i.imgur.com/nU0qQAU.png)
![](https://i.imgur.com/1L7OdST.png)
![](https://i.imgur.com/9wGUepx.png)
{{}} => 會被laravel引擎翻譯成字串,等同php echo的語法
{{ route('persons.destroy', [route指定的參數 => 指定id])}}
route('函式', route指定的參數)
[]=>陣列簡寫
[''=>''] => 胖箭頭代表,陣列裡面的其中單一個元素
如果有兩個以上 => ['id'=>'123', 'id'=>'456']
指定完成後F12會看到翻譯成字串
![](https://i.imgur.com/8Dac59F.png)
route文件: https://laravel.com/docs/8.x/helpers#methods-route
補充: action="導回指定的頁面",但是delete不能做導回自己的方法,只有get, head, post
![](https://i.imgur.com/qMFRXBY.png)
@csrf => _token 產生一組與伺服端做比對的亂碼,讓安全性提升一些
## Laravel + Vue.js 入門 - CRUD - 06
controller有三個功能:
1. 帶入model
2. 如何將model建立出一個資料集
3. 把資料集變成一個物件集合做一個顯示
controller是使用物件導向型的寫法
model載入至controller
![](https://i.imgur.com/T3LgvDh.png)
指定要串聯資料庫的名稱,這邊是強制示範
![](https://i.imgur.com/V6BQiJm.png)
提取資料帶入新變數並顯示在頁面上
![](https://i.imgur.com/6qjQVoo.png)
blade語法套用在table表格
![](https://i.imgur.com/mDsocR9.png)
laravel,loop迴圈文件:
https://laravel.com/docs/8.x/blade#loops
route定義方式文件參考:
https://laravel.com/docs/7.x/controllers#restful-partial-resource-routes
![](https://i.imgur.com/b4eaM1K.png)
---
## Laravel + Vue.js 入門 - CRUD - 07
helpers文件連結: https://laravel.com/docs/7.x/helpers
https://laravel.com/docs/7.x/helpers#method-route
blade 連結寫法
![](https://i.imgur.com/lFPsE6b.png)
middleware登入判斷
route文件連結: https://laravel.com/docs/7.x/routing#route-groups
第一種群體包法的方式:
![](https://i.imgur.com/9d3EnuU.png)
第二種方式:
![](https://i.imgur.com/Mib4O8A.png)
## Laravel + Vue.js 入門 - CRUD - 08
將接收到的值傳到前台
可以使用all())
![](https://i.imgur.com/cVwuzYi.png)
![](https://i.imgur.com/SMsonNQ.png)
**laravel已經有內建多國語系**
多國語系文件:
https://laravel.com/docs/8.x/localization
自訂錯誤訊息文件:
https://laravel.com/docs/7.x/validation#custom-error-messages
$validator = Validator::make($input, $rules, $messages);
input=> request表單所有的欄位,驗證的欄位傳入
rules=> 驗證的規則
message=> 回傳訊息
驗證邏輯:
https://laravel.com/docs/7.x/validation#quick-writing-the-validation-logic
![](https://i.imgur.com/3KrMuFD.png)
顯示驗證訊息: https://laravel.com/docs/7.x/validation#quick-displaying-the-validation-errors
舊的值: https://laravel.com/docs/7.x/helpers#method-old
驗證流程寫法:
1. 控制器裡面載入驗證
![](https://i.imgur.com/yfJkxE1.png)
2. 新建寫法
![](https://i.imgur.com/3vEzsil.png)
3. blade前端接收
![](https://i.imgur.com/O6FDB5z.png)
![](https://i.imgur.com/vaKVJrE.png)
4. 修改語言
laravel 語言包位置:
![](https://i.imgur.com/IDTgVe8.png)
改變整個網站語系:
laravel語言設定位置
![](https://i.imgur.com/0LSdopH.png)
laravel語言定義位置
![](https://i.imgur.com/MKQUt9l.png)
::attribute=> 代表會帶入前端name定義的值
![](https://i.imgur.com/xCPyNO2.png)
**laravel語言變換**
第一種方法: 新建一個中文資料夾,並新建定義的語言
第二種方法: 沿用英文的去做修改
第三種方法: 沿用英文,並用validation $message 去做修改
![](https://i.imgur.com/nds3XMc.png)
驗證通過存進資料庫
![](https://i.imgur.com/g1Lc2Gb.png)
驗證方法2: 不需要使用參數,作法更簡單
![](https://i.imgur.com/nZlYJdE.png)
### 存入資料庫遇到問題點
![](https://i.imgur.com/f4h9n1V.png)
原因: laravel在mysql驗證中預設是嚴格模式
方法一: 如果不需要嚴格的驗證方式的話,可以在config/database.php將strict改為false
![](https://i.imgur.com/UTwGtMW.png)
## Laravel + Vue.js 入門 - CRUD - 09
### 編輯
編輯作法,編輯與新增差不多,blade模板方式可以直接複製create,只需要改依些地方
update需要攜帶personId,要知道要編輯的是哪一個id,並且要注意php都使用單引號
@method('PUT'): 為偽造方法
![](https://i.imgur.com/5OMpVam.png)
所有清單列表編輯按鈕
![](https://i.imgur.com/KwtkRbg.png)
find()尋找文件:
https://laravel.com/docs/7.x/eloquent#retrieving-single-models
![](https://i.imgur.com/KJKuuKF.png)
where get
如果搜尋很多筆資料,帶回來的會是多維的
前端做資料的綁定,將資料傳到欄位上面,old('','物件->key')
![](https://i.imgur.com/coL6K3r.png)
更新controller
![](https://i.imgur.com/5ZU5Jqk.png)
新增資料庫文件:
https://laravel.com/docs/7.x/eloquent#inserting-and-updating-models
### 刪除
回到前端,將真實資料帶入
![](https://i.imgur.com/zZlBJZP.png)
F12可以看到偽造及參數已經帶入
![](https://i.imgur.com/aRQBSsg.png)
刪除controller
![](https://i.imgur.com/idubNSU.png)
## Laravel + Vue.js 入門 - CRUD - 10
新建一個專案,框架改為vue,流程跟前面差不多:
1. 複製資料庫
![](https://i.imgur.com/daQQnPA.png)
2. 新建一個laravel專案
composer create-project --prefer-dist laravel/laravel:^7.0 project_04
![](https://i.imgur.com/Dk0A3pn.png)
3. 安裝laravel UI 套件
指令: composer require laravel/ui:^2.4,
補充: laravel版本: 第7版支援2,第8版支援3
4. 架構出一個後端登入驗證介面 指令: php artisan ui bootstrap --auth
5. 建立一個Models,建議建立在Http底下,Http新增Models資料夾,
指令: php artisan make:model Http/Models/Person
6. 建立control,這邊比較不一樣的做法:
指令: php artisan make:controller PersonController --api
在這邊要注意一個地方,選擇api,所建立的fucntion跟使用resource少了create/edit,預設上是因為假設全部都做在同一頁面
api文件: https://laravel.com/docs/7.x/controllers
---
## Laravel + Vue.js 入門 - CRUD - 11
api路由出現方式:
這邊範例會先隱藏不做複雜的,只做一班後台驗證,會先將middleware('api')隱藏
![](https://i.imgur.com/uuo6lS1.png)
新增一般後台驗證api,不需要煩惱token部分
closer=>閉包
![](https://i.imgur.com/xQ1WInn.png)
取得聯絡簿人員列表:
直接引用model取得列表
![](https://i.imgur.com/VEIAo4i.png)
![](https://i.imgur.com/YdDAJAc.png)
定義上uri和name盡量一致,在呼叫上會使用name,action運用會在route裡面
![](https://i.imgur.com/I1Xa3yw.png)
**新增/刪除/修改都寫在web.php,修正簡易寫法: 批次載入**
新增
![](https://i.imgur.com/cncEOPW.png)
修改
![](https://i.imgur.com/owxfRrD.png)
刪除
![](https://i.imgur.com/JpTgXOj.png)
相關文件:
https://laravel.com/docs/7.x/eloquent#mass-assignment
## Laravel + Vue.js 入門 - CRUD - 12
laravel csrf: 跨站請求偽造
防止有心人士做重複地請求去竊取重要的資料
https://laravel.com/docs/7.x/csrf
https://ithelp.ithome.com.tw/articles/10208593?sc=iThelpR
x-xsrf-token: csrf token擋頭,放在xsrf-token裡面cookie裡面,
https://laravel.com/docs/7.x/csrf#csrf-x-xsrf-token
放置位置:
![](https://i.imgur.com/lp2mUj3.png)
![](https://i.imgur.com/ql0cHKc.png)
可以看到與cookie作連動
xsrf-token是laravel的token,建立UI的時候就會自動加入,並且每一頁面都會有,如果沒有的話可以自動加入
![](https://i.imgur.com/RYH7P0V.png)
如果沒有加入token,可以照文件手動強制將token寫入cookie,如果是使用jquery可以使用$.ajaxSetup加入
![](https://i.imgur.com/eufGxTo.png)
https://laravel.com/docs/7.x/csrf#csrf-x-csrf-token
引用axios套件後,會自動去抓取x-csrf-token,不需要再手動強制去加入
![](https://i.imgur.com/uFwaYtL.png)
postman 傳遞x-xsrf-token
https://ivanagyro.medium.com/%E7%94%A8postman-6-0-7%E5%82%B3%E9%81%9Ex-xsrf-token-6104e94d6424
## Laravel + Vue.js 入門 - CRUD - 13
引入vue
在組件上面新增@section('script')~@endsection 區塊,用來寫vue
![](https://i.imgur.com/ZFdYQKx.png)
使用上前面必須要加上一個@,因為與php有衝突
![](https://i.imgur.com/IrOAo48.png)
相關文件: https://laravel.com/docs/7.x/blade#blade-and-javascript-frameworks
---
laravel 錯誤編號意思:
400 Bad request:通常是因為參數錯誤,沒有傳遞請求必須夾帶的參數或是參數類型不匹配
401 Unauthorized:沒有帶認證資料或者帶了錯誤的認證資料
403 Forbidden:用戶端帶了正確的參數,,但傳遞參數的用戶沒有權限訪問此站,伺服器收到請求但拒絕提供服務
419 => token沒有對應
422 => 代表有欄位沒有填寫
500 =>
502 => bad gateway,錯誤網關,指上游伺服器和網關/代理不同意的協議交換數據,通常是網站本身的問題不是用戶端的問題,這段代碼是HTTP狀態代碼之一,他警告web伺服器管理員網站出了問題
1. 伺服器超載: 如果伺服器耗盡內存,伺服器可能會崩潰,原因是站點上有大量訪問者或DDOS攻擊
2. 防火牆阻止請求: 防火牆可能會阻止邊緣伺服器和上游伺服器之間的通信。某些DDoS保護系統可能會過度反應並阻止來自內容傳送系統的請求。
3. 編程錯誤:有時網站代碼中的一個錯誤可能意味著請求不能得到正確的響應,從而導致出現這個錯誤。
4. 網路錯誤: DNS問題、路由問題和ISP相關的問題也可以導致錯誤網關。
5. 伺服器軟體超時: 當Web伺服器需要更多時間來完成並且緩存工具達到其超時值時,也會發生此錯誤。慢查詢也會導致此問題。
解決方法:
要釐清
1. ajax傳輸機制原理是甚麼
2. 為什麼會有header
3. head和header是不一樣
4. request和response的擋頭是甚麼
---
## Laravel + Vue.js 入門 - CRUD - 14
api url:
https://laravel.com/docs/7.x/helpers#method-route
下方指令確認api url表格: 最主要看Name欄位
![](https://i.imgur.com/AnYSLe9.png)
api引用介接: url下({{route('api.persons')}})
![](https://i.imgur.com/gOEH9yS.png)
dom元素介接上要記得在花掛號上面寫上@
![](https://i.imgur.com/sFp6OXP.png)
## Laravel + Vue.js 入門 - CRUD - 15
serialize使用方式DOM元素:
可將編碼串起來
https://api.jquery.com/serialize/
https://www.w3school.com.cn/jquery/ajax_serialize.asp
![](https://i.imgur.com/Udd55ND.png)
中文編碼修正: https://cythilya.github.io/2020/07/24/encode-decode/
const encodedStr = encodeURI('這是中文字串'); // encodedStr 得到 %E9%80%99%E6%98%AF%E4%B8%AD%E6%96%87%E5%AD%97%E4%B8%B2
---
補充 :
Schema => 可以想成是與資料庫做對換
migrate => 以應用程式為導向, 記錄對資料庫所做過的動作, 只紀錄結構, 但是如果一來一往刪除, 資料會消失
artisan 指令 => php .\artisan
---
其他連結:
laraval 教學:https://www.youtube.com/watch?v=pSuVgTp2Ovg&list=PL2SrkGHjnWcyOquWJIEd7AYAJGMAUdp-a&index=29
IT幫幫忙:
https://ithelp.ithome.com.tw/users/20120326/ironman/2463
php後端debug:
https://medium.com/pvt5r486/%E5%88%9D%E6%8E%A2%E5%BE%8C%E7%AB%AF-no-2-%E4%BD%BF%E7%94%A8vs-code-%E9%96%8B%E7%99%BCphp-%E7%9A%84-debug-%E8%A8%AD%E5%AE%9A%E8%88%87-composer-%E5%A5%97%E4%BB%B6%E7%AE%A1%E7%90%86-f0b45955aa9b
課程共筆連結: https://docs.google.com/document/d/1adZSaeq7BXMRsvKmSsgRECO2ap3c9PPV4DmxAz0ZpYQ/edit?fbclid=IwAR1-VniCsJM0VlruvwflOA86Ligwb7gwIm73EH7BPyu19ieCVybWOc3mnq0