Laravel隨手筆記

這篇會隨手紀錄在學習Laravel與RESTFUL API與Vue.js...等等的程式的時候,自己常常會忘記的架構或語法。

Laravel

  • route位置 => /routes/
  • view位置 => /resource/views/
  • controller位置 => /app/Http/Controller/
  • model位置 => /app/
  • 資料庫連線設定位置 => config/database.php
  • 在blade中 {{ $titile }}就是<? echo htmlentitles($title);?>的意思
  • 在blade中 {!! $titile !!}就是<? echo $title;?>的意思
  • 模板繼承範例
    • 在母模板使用@yield('title'),@yield('content')
    • 子模板@section('title',$title) => 直接帶入變數帶回母模板的@yield('title')
    • 子模板@section('content')~程式碼~@endsection =>將子模板區塊中的程式碼帶回母模板的@yield('content')
  •  資料驗證(Validator)
    • $rules['email'=>['required','max:150','email']] => 表示email欄位必填,最長150個字,驗證是否符合email的規則
    • $rules['password'=>['required','same:password_confirmation','min:6']] =>表示password欄位必填,必須與password_confirmation欄位的數值相同,最少6個字
    • $rules['password_confirmation'=>['required','min:6']] =>表示password_confirmation欄位必填,最少6個字
    • $rules['type'=>['required','in:G,A']] =>表示type欄位必填,僅限定G或A這兩種數值
    • 最後套入Validator::make(request->all(),$rules)判斷是否有錯誤
  • blade的三元運算 => {{ isset($name) ? $name : 'Default' }}可以簡寫為{{ $name or 'Default' }}
  • redirect()->withInput => 可以將input資料再傳回到導向的畫面,該畫面再以old('欄位名稱')將資料帶回原本欄位
  • Hash
    • Hash::make(密碼) //用來對密碼加密
    • Hash:check(輸入的密碼,資料庫的密碼) //檢查密碼是否正確
  • 列印EloquentSQL語法的方法
    • DB::enableQueryLog(); //啟用紀錄SQL語法
    • $user = User::where('email',$imput['email'])->firstOrFail(); //撈取使用者資料
    • var_dump(DB::getQueryLog());//列印出資料庫目前所有執行的SQL語法
  • session
    • session()->put(鍵值) //將資料存入
    • session()->has(鍵值) //判斷是否有資料
    • session()->forget(鍵值) //清除session資料
  • 交易功能
    • DB::BeginTransaction();//開始交易
    • DB::commit();//完成交易
    • DB::rollBack();//取消交易
  • $request
    • $request->ip()取得使用者IP
    • $request->path()取得uri
    • $request->method()取得HTTP請求方式 
    • $request->isMethod()判斷HTTP請求方式ex: ($request->isMethod('post')?true:false)

Migration

  1. php artisan make:migration => 建立migration檔案(snake_case)
  2. php artisan migrate => 執行migration檔案
  3. php artisan migrate:rollback => 恢復上一版本的migration檔案
  4. php artisan migrate:reset => 清除所有的migration版本
  5. php artisan migrate:refresh => 重設所有的migration版本並立即重建新的資料表

Seeder

  1. php artisan make:seed UserTableSeeder => 建立seeder
  2. php artisan db:seed => 執行所有seeder
  3. php artisan db:seed --class=UserTableSeeder =>執行單一seeder
  4. seeder可以搭配faker產生資料參考 https://bonze.tw/laravel-faker/ 這篇文章撰寫

HTTP Method

  1. GET 讀取資源
  2. PUT 替換資源
  3. PATCH 更換資源部分內容
  4. DELETE 刪除資源
  5. OPTIONS 回傳該資源所支援的所有 HTTP 請求方法
  6. CONNECT 將連線請求轉換至 TCP/IP 隧道
  7. POST 新增資源

RESTful API

  1. 瀏覽全部page畫面=GET:http://localhost/page/
  2. 瀏覽一筆page資料=GET:http://localhost/page/:id
  3. 新增一筆page資料=POST:http://localhost/page
  4. 修改一筆page資料=PUT:http://localhost/page/:id
  5. 刪除一筆page資料=DELETE:http://localhost/page/:id