Laravel 客製密碼欄位驗證
Laravel 內建Auth + 客製密碼驗證規則(Laravel 11)
Laravel 11 有異動許多地方,RouteServiceProvider、AuthServiceProvider… 都統一在AppServiceProvider中處理
新增一個會員的驗證機制來作為範例
- config/auth.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'member' => [
'driver' => 'session',
'provider' => 'members',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => env('AUTH_MODEL', App\Models\User::class),
],
'members' => [
'driver' => 'member',
'model' => App\Models\Member::class,
],
],
Laravel Test 單一測試使用多個使用者
Laravel Test 單一測試使用多個使用者
遇到的問題
測試新增兩位會員,使用Laravel Sanctum 驗證方式,測試取得會員資料
單獨一個使用者測試沒有問題,但兩位使用者會驗證失敗,會是相同的會員
第二筆回傳的會員資料會是第一筆會員資料
失敗的測試程式碼
1 | public function test_profile() { |
解決 Ubuntu 22.04 不支援 php7.4 問題
問題
安裝Linux php7.4時,發現Ubuntu 22.04不支援php7.4
1 | $ apt-get install php7.4-fpm -y |
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
Package php7.4 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package ‘php7.4’ has no installation candidate
解決方法
安裝舊版的套件包
1 | $ add-apt-repository ppa:ondrej/php && apt update -y |
參考網站:
php_zip_archive_file_num_incorrect
PHP ZipArchive 壓縮檔案數量不正確
問題
上傳了一個縮檔檔 (file.zip),內包含兩個圖片
使用程式碼解壓縮,逐一上傳到伺服器
1 | $zip = new \ZipArchive(); |
但發現 $zip->numFiles
的數量不正確,有四個檔案
查詢所有的$ file_name,發現有兩個檔案是 __MACOSX/._
開頭的檔案
1 | $zip = new \ZipArchive(); |
1 | local.INFO: stat [{"name":"pic1.jpg","index":0,"crc":386404580,"size":42992,"mtime":1714363176,"comp_size":38074,"comp_method":8,"encryption_method":0}] |
__MACOSX/ 是一個在 macOS 系統中創建的 zip 檔案可能會包含的特殊目錄。當你在 macOS 中使用內建的壓縮工具來創建 zip 檔案時,系統會自動在 zip 檔案中創建一個名為 __MACOSX/ 的目錄。
解決方法
判斷開頭為 __MACOSX/._
的檔案,不進行上傳
1 | for ($i = 0; $i < $zip->numFiles; $i++) { |