Laravel Query在IPv4 vs上的行为有所不同。 IPv6环境
问题描述:
我有一个奇怪的情况,在使用Laravel时我从未见过。 我在不同的设置上有相同的代码库,IPv4虚拟机中有1个,IPv6虚拟机中有1个。Laravel Query在IPv4 vs上的行为有所不同。 IPv6环境
这是数据库中的数据。
这是我的正常查询。
// $ap = '102030405067';
$gw = Gateway::where('cpe_mac','=',$ap)->first();
dd($gw);
在我的IPv4的设置,我得到:
{#541 ▼
+"id": 1
+"account_id": "50"
+"cpe_mac": "102030405067"
+"gw_id": "1956692524588882"
+"gw_secret": "zUIyaQfCntob2thL6uR4uQfBvmlCei-5q_oVSJnyeSc"
+"fb_wifi_enable": "1"
+"created_at": "2017-10-10 14:41:17"
+"updated_at": "2017-10-10 14:41:17"
}
在我的IPv6的设置,我得到:
null
尝试#2
dd(Gateway::all());
。
结果
在IPv4中,我得到了所有返回的记录。
在IPv6中,我得到了这个空集
Collection {#542 \u25bc #items: [] }
最令人困惑的部分是,其他表似乎做工精细,这gateways
似乎成为唯一导致问题的人。
我三重检查了我的网关型号名称和表名。他们拼写正确。
你们见过这样的事情之前?
如何进一步调试此问题?
我还应该尝试什么?
答
说实话 - 我不认为这是可能的。
确保在这两种情况下$ap
都包含完全相同的值。您可以使用trim($ap)
以防万一,以确保它不包含额外的特殊字符。
还要确保两个虚拟机上的数据库中有相同的数据。现在看起来,在一台虚拟机中你有数据库中的数据,其次你不需要。
编辑
这是不可能有直接的问题Laravel,所以:
- 确保在两个虚拟机,你必须在你的数据库中的数据 - 在两个虚拟机运行
SELECT * FROM gateways
验证两个你有任何记录(你没有提到两个虚拟机使用相同的数据库,所以我认为它们是不同的) - 请确保在两个虚拟机中你有有效的数据库集在你的
.env
文件中 - 两个VMS运行
php artisan config:clear
只是为了确保你没有缓存无效的数据库连接
让我来试试这个'修剪($ AP)' – ihue
不,没有工作。同样的结果。 – ihue
我试过'dd(Gateway :: all());'。在IPv4中,我得到了所有的记录。在IPv6中,我得到了这个空集合'Collection {#542 \ #items:[] }' – ihue