Laravel Query在IPv4 vs上的行为有所不同。 IPv6环境

Laravel Query在IPv4 vs上的行为有所不同。 IPv6环境

问题描述:

我有一个奇怪的情况,在使用Laravel时我从未见过。 我在不同的设置上有相同的代码库,IPv4虚拟机中有1个,IPv6虚拟机中有1个。Laravel Query在IPv4 vs上的行为有所不同。 IPv6环境

这是数据库中的数据。

enter image description here

这是我的正常查询。

// $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中,我得到了所有返回的记录。

enter image description here

在IPv6中,我得到了这个空集

Collection {#542 \u25bc #items: [] }

enter image description here


最令人困惑的部分是,其他表似乎做工精细,这gateways似乎成为唯一导致问题的人。

我三重检查了我的网关型号名称和表名。他们拼写正确。


  • 你们见过这样的事情之前?

  • 如何进一步调试此问题?

  • 我还应该尝试什么?

说实话 - 我不认为这是可能的。

确保在这两种情况下$ap都包含完全相同的值。您可以使用trim($ap)以防万一,以确保它不包含额外的特殊字符。

还要确保两个虚拟机上的数据库中有相同的数据。现在看起来,在一台虚拟机中你有数据库中的数据,其次你不需要。

编辑

这是不可能有直接的问题Laravel,所以:

  • 确保在两个虚拟机,你必须在你的数据库中的数据 - 在两个虚拟机运行SELECT * FROM gateways验证两个你有任何记录(你没有提到两个虚拟机使用相同的数据库,所以我认为它们是不同的)
  • 请确保在两个虚拟机中你有有效的数据库集在你的.env文件中
  • 两个VMS运行php artisan config:clear只是为了确保你没有缓存无效的数据库连接
+0

让我来试试这个'修剪($ AP)' – ihue

+0

不,没有工作。同样的结果。 – ihue

+0

我试过'dd(Gateway :: all());'。在IPv4中,我得到了所有的记录。在IPv6中,我得到了这个空集合'Collection {#542 \ #items:[] }' – ihue