資料庫設定
使用 make:migration
建立新的 migration:
php artisan make:migration --table=users add_api_token
Read more “Laravel API Token 使用方式”
Leave a comment使用 make:migration
建立新的 migration:
php artisan make:migration --table=users add_api_token
Read more “Laravel API Token 使用方式”
Leave a comment在 PHP 5.3 可以透過 ?:
運算子簡單的判斷並賦值
$foo = $bar ?: $baz;
上面的運算式等同:
$foo = $bar ? $bar : $baz;
但是在沒有宣告變數之前仍然會出現錯誤訊息。而 PHP 7.0 開始支援兩個問號 (??
) 判斷並賦值,而且不用事先使用 isset()
判斷變數是否存在:
$username = $_GET['user'] ?? 'nobody';
上面的運算式等同:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
而且可以串一個以上的判斷:
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
Leave a commentReferences
當我們將 migration file 遷移到資料庫後,日後想要直接修改原先的 migration file 而不是新增一個去做結構變更時,可以透過 migrate:refresh
重新遷移,但是如果前一次遷移包含多個檔案時,這些資料表都會受到影響;若想要修改的資料表不屬於上一個批次(batch),透過 –step 選項去做遷移,影響範圍就會更大。
常見的做法是建立一個臨時目錄,將 migration file 放進去後執行遷移,但是這個做法僅適用於第一次遷移;另一種方式是修改資料表 migrations 的批次號碼,讓指定的 migration file 成為上一個批次。
這些都是臨時性做法,若是有很多批要修改就會很麻煩,所以我就寫了一個小工具,之後用一行指令就可以解決這個問題。
Package Name: MigrateSpecific
Version: 1.2.1
Site: https://github.com/caloskao/migrate-specific
Read more “[Laravel] 使用 MigrateSpecific 遷移指定檔案到資料庫”
Leave a commentPHP 可藉由 json_encode()
與 json_decode()
來編碼與解碼 JSON 格式的資料,在一般情況下不需要特別給予任何參數,但如果將 JSON 格式資料直接儲存的話,預設是儲存一行文,在不靠任何工具的前提下僅以肉眼辨識會顯得有點吃力。
$data = [
'5b8e2e456106f8.12710761' => [
'id' => '5b8e2e456106f8.12710761',
'description' => '',
'options' => [],
'size' => 1243916,
'create_at' => '2018-09-04 15:04:02'
]
];
echo json_encode($data);
輸出如下:
{"5b8e2e456106f8.12710761":{"id":"5b8e2e456106f8.12710761","description":"","options":[],"size":1243916,"create_at":"2018-09-04 15:04:02"}}
如果想要提升 JSON 格式資料的可讀性,只需要將 json_encode()
的第二個參數設為 JSON_PRETTY_PRINT
即可。
echo json_encode($data, JSON_PRETTY_PRINT);
輸出:
{
"5b8e2e456106f8.12710761": {
"id": "5b8e2e456106f8.12710761",
"description": "",
"options": [],
"size": 1243916,
"create_at": "2018-09-04 15:04:02"
}
}
PHP 5.6.6 以上可選擇的參數共有 11 個,詳細說明可見 PHP 官網
PHP 可以透過 serialize()
將物件轉換成序列化文字資料後儲存在任何地方,需要使用的時候再透過 unserialize()
進行反序列化後得到原始物件,但因為序列化資料會記錄資料長度,因此如果想直接修改序列化資料的內容,需要連同資料長度也一起算進去,手動修改時麻煩且容易出錯。這時候可以透過 Serialized PHP Editor 這個 PHP 序列化資料線上編輯器進行修改就會方便很多。