原创 laravel 之 Unit 單元測試

在進行項目開發的時候,經常會對我們的類,函數,http請求等進行測試,看結果是否符合我們的預期。 對於http 請求我們通常會使用postman 來進行測試。 那麼如果我們需要測試某一個類,某一個方法,需要怎麼辦? 可能我們會這

原创 mysql case用法 在sql 進行分支處理

需求: 兩張表,線上課程表 course 表和線下表 classes 表。還有一張訂單表。訂單表中有一個字段platform 表示課程類型:0 表示線下, 1表示線上。需要關聯查詢相關訂單信息。 問題: 如果分開查詢,會導致排

原创 Mac iTerm ssh 連接服務器

mac 的iTerm 終端連接服務器命令 ssh [email protected] -p 22 ssh 用戶名@ip地址 -p 端口號 回車輸入密碼,即可登陸到服務器。 如果不想每次都輸入密碼的話,可以:免密登陸 接下來玩一下高

原创 Laravel 批量更新

Laravel 簡單的批量更新數據 需求:將order 表的 status 字段更新爲2,條件是 id 在 arr 數組中的行。 $orderId = [1,2,4,6,8]; \DB::table('order')->whe

原创 crontab 腳本測試demo

crontab命令被用來提交和管理用戶的需要週期性執行的任務,與windows下的計劃任務類似,當安裝完成操作系統後,默認會安裝此服務工具,並且會自動啓動crond進程,crond進程每分鐘會定期檢查是否有要執行的任務,如果有要執行的任務

原创 前端(JS)與後端(PHP) 通過 RSA 實現加解密

在項目開發過程中,爲了安全起見,通常不能以明文形式傳遞敏感信息,容易被截獲,所以引入RSA。 1. 生成公鑰和私鑰 在終端(基於 Unix 的操作系統)中輸入以下內容。生成私鑰 openssl genrsa -out rsa_

原创 ES 簡單操作指令

創建數據 PUT ip:9200/index/type/id { "user" : "張三", "title" : "工程師", "desc" : "數據庫管理,軟件開發" } POST ip:920

原创 shell 腳本提示權限不夠的幾種解決方式

創建一個 shell 文件。 vim test.sh #! /bin/bash echo 'hello world'; 執行該腳本文件會報權限不足的錯誤 [root@root ~]# ./test.sh -bash: .

原创 開發中遇到的越權問題

越權問題: 描述:在使用 api 請求訂單詳情接口時,一般我們是傳遞訂單id 來獲取該訂單的內容。但是會存在一個問題:當用戶手動去變更訂單id 參數來請求接口數據時,會獲取到不屬於他的數據,這就產生了越權。 解決辦法: 根據訂

原创 併發情況下產品超賣

在併發時減庫存不能簡單地通過 update(['stock' => stock - $amount])來操作,在高併發的情況下會有問題。 $amount = $data['amount ']; update product se

原创 laravel 中字段格式處理

如果查詢結果集中的某一個字段需要做相同的格式處理,之前的處理方法: $order = \DB::table('order') ->where('status',1) ->get(); foreach($order as

原创 laravel 中查看執行的sql 語句

在laravel 框架中,一般使用鏈式操作來對數據庫進行相關的增刪改查。那麼如何查看我們執行的sql 呢? 對於查詢語句來說; 我們可以在鏈式操作後面加上->toSql();來打印執行的sql 語句。 但是,對於其他的就不適用了。

原创 laravel 中使用 Hash::make() 對用戶密碼進行加密

laravel 中使用 Hash::make() 對用戶密碼進行加密 問題描述: 在調試中發現使用 Hash:make($password) 對用戶密碼進行加密;在驗證時發現對於相同的password 會出現不同的加密結果,那麼

原创 使用 Redis 實現延時隊列

使用 Redis 實現延時隊列 場景描述:訂單在下單之後一定時間內沒有支付,則關閉該訂單 實現方式:用戶下單-> 生成訂單記錄-> 將訂單信息推入延時隊列任務中-> 到時間檢查訂單的支付狀態(未支付則關閉訂單) 使用red

原创 mysql update 報錯

> 問題描述 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable