我正在尝试使用 laravel、mariadb、nginx、redis 和 phpmyadmin 设置一个 docker-pod。laravel webspace 可以正常工作,但是如果我切换到端口 10081(如 docker-compose.yml 中配置的那样),我将无法使用 root 帐户登录。
它说“ mysqli::real_connect(): php_network_getaddresses: getaddrinfo failed: 名称解析暂时失败”
我已经尝试配置一个链接所有容器的“我的网络”,但是如果我正确理解docker,那么已经有一个“默认”网络可以做到这一点。无论如何,它并没有改变错误消息。
这是我完整的 docker-compose 文件
version: "3.8"
services:
redis:
image: redis:6.0-alpine
expose:
- "6380"
db:
image: mariadb:10.4
ports:
- "3307:3306"
environment:
MYSQL_USERNAME: root
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: laravel
volumes:
- db-data:/var/lib/mysql
nginx:
image: nginx:1.19-alpine
build:
context: .
dockerfile: ./docker/nginx.Dockerfile
restart: always
depends_on:
- php
ports:
- "10080:80"
networks:
- default
environment:
VIRTUAL_HOST: cockpit.example.de
volumes:
- ./docker/nginx.conf:/etc/nginx/nginx.conf:ro
- ./public:/app/public:ro
php:
build:
target: dev
context: …Run Code Online (Sandbox Code Playgroud) 拉拉维尔 5.8
\n\n我懒惰地加载与相关客户的用户,该客户与 crmaccount 对象具有一对一关系
\n\n这些模型正在工作,因此当我检索急切加载的实体时,它会显示所有嵌套关系。
\n\n一行之后,我在该对象上使用“toArray()”方法,并且输出缺少第三级关系。
\n\n关于“crmaccount”模型的唯一特殊之处可能是它包含一个必须转换的 json 列。
\n\n知道这是怎么回事吗?
\n\n\n\n\n\n所有这些都发生在中间件中。如果我使用 with 或 load 没有区别。
\n\npublic function handle($request, Closure $next)\n{\n $UserData = \\Auth::user();\n if($UserData){\n $User = \\App\\Login::with([\'role\',\'customer\',\'customer.crmaccount\'])->find($UserData->id);\n dump($User);\n dd($User->toArray());\n\n\n $UserData[\'isAdmin\'] = false;\n if($UserData[\'role\'][\'name\'] === \'Admin\'){\n $UserData[\'isAdmin\'] = true;\n }\n $request->request->add([\'UserData\' => $UserData]);\n }\n\n return $next($request);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n登录
\n\n<?php\n\nnamespace App;\n\nuse Illuminate\\Notifications\\Notifiable;\nuse Illuminate\\Contracts\\Auth\\MustVerifyEmail;\nuse Illuminate\\Foundation\\Auth\\User as Authenticatable;\n\nclass Login extends Authenticatable{\n use Notifiable;\n\n /**\n * The attributes that are mass assignable.\n *\n * …Run Code Online (Sandbox Code Playgroud)