@extends('app') @section('內容')<p>負責/posts的web.php中的路由如下:</p>貼文索引頁
@forelse($posts 作為 $post){{ $post->title }}
; @空的沒有貼文!
@endforelse @endsection
Route::resource('/posts', PostController::class)->only(['index', 'store']);< /預> <p>PostController的索引函數如下:</p>公用函數index() { $posts = Post::all(); return view('posts.index', 緊湊('posts')); }</pre> <p>我的.env檔如下:</p>APP_NAME=Laravel APP_ENV=本地 APP_KEY=base64:1HEk/HaN8IL/wV8q4DCzpvmM/cYRDvGAIe 0DxS9ggo= APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=堆疊 LOG_DEPRECATIONS_CHANNEL=空 LOG_LEVEL=調試 DB_CONNECTION=mysql DB_HOST=127.0.0.1 資料庫連接埠=3307 DB_DATABASE=laravel_essentials_app DB_USERNAME=航行 DB_PASSWORD=密碼 BROADCAST_DRIVER=日誌 CACHE_DRIVER=文件 FILESYSTEM_DISK=本地 QUEUE_CONNECTION=同步 SESSION_DRIVER=文件 SESSION_LIFETIME=120 MEMCACHED_HOST=memcached REDIS_HOST=redis REDIS_PASSWORD=空 REDIS_PORT=6379 MAIL_MAILER=smtp MAIL_HOST=mailhog 郵件連接埠=1025 MAIL_USERNAME=空 MAIL_PASSWORD=空 MAIL_ENCRYPTION=空 MAIL_FROM_ADDRESS=“hello@example.com” MAIL_FROM_NAME=“${APP_NAME}” AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_HOST= PUSHER_PORT=443 PUSHER_SCHEME=https PUSHER_APP_CLUSTER=mt1 VITE_PUSHER_APP_KEY=“${PUSHER_APP_KEY}” VITE_PUSHER_HOST=“${PUSHER_HOST}” VITE_PUSHER_PORT=“${PUSHER_PORT}” VITE_PUSHER_SCHEME=“${PUSHER_SCHEME}” VITE_PUSHER_APP_CLUSTER=“${PUSHER_APP_CLUSTER}”<p>我的docker-compose.yml檔案如下:</p># 欲了解更多資訊:https://laravel.com/docs/sail 版本:'3' 服務: laravel.測試: 建造: 上下文:./vendor/laravel/sail/runtimes/8.1 dockerfile: Dockerfile 參數: WWWGROUP: '${WWWGROUP}' 圖:sail-8.1/app 額外主機: - 'host.docker.internal:主機閘道' 連接埠: - '${APP_PORT:-80}:80' - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' 環境: WWWUSER: '${WWWUSER}' 拉拉維爾_航行:1 XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-關閉}' XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' 卷: - '.:/var/www/html' 網路: - 航行 依賴取決於: - mysql - 雷迪斯 mysql: 圖:'mysql/mysql-server:8.0' 連接埠: - '${FORWARD_DB_PORT:-3307}:3306' 環境: MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' MYSQL_ROOT_HOST:“${DB_HOST}” MYSQL_DATABASE: '${DB_DATABASE}' MYSQL_USER: '${DB_USERNAME}' MYSQL_PASSWORD: '${DB_PASSWORD}' MYSQL_ALLOW_EMPTY_PASSWORD:1 卷: - 'sail-mysql:/var/lib/mysql' - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' 網路: - 航行 健康檢查: 測試:[“CMD”、“mysqladmin”、“ping”、“-p${DB_PASSWORD}”] 重試次數:3 超時:5秒 雷迪斯: 圖:'redis:高山' 連接埠: - '${FORWARD_REDIS_PORT:-6379}:6379' 卷: - 'sail-redis:/data' 網路: - 航行 健康檢查: 測試:[“CMD”、“redis-cli”、“ping”] 重試次數:3 超時:5秒 網路: 帆: 司機:橋 卷: 帆-mysql: 司機:本地 帆-redis: 驅動程式:本地</pre> <p>我的作業系統是Windows 11,我在上面運行MySQL Workbench。這就是為什麼我暴露3307端口而不是3306端口的原因。</p>使用當前設置,我可以在wsl終端機中無問題地運行php artisan migrate。
<p>為了避免連線被拒絕錯誤,我可以從 localhost/posts 存取posts 來做什麼?</p> <p><strong>解決方案</strong> 透過將.env中的DB_HOST更改為mysql,同時將DB_PORT更改為3306來解決問題。</p> <p><strong>編的.env檔</strong></p>DB_CONNECTION=mysql DB_HOST=mysql 資料庫連接埠=3306 DB_DATABASE=laravel_essentials_app DB_USERNAME=航行 DB_PASSWORD=密碼</pre></p>
在您的.env檔案中將DB_HOST的值設為
#mysql