2017-10-10 11 views
1

J'ai ici une situation étrange que je n'avais jamais vue auparavant en utilisant Laravel. J'ai la même base de code sur différentes configurations, 1 en VM IPv4, 1 en VM IPv6.Laravel Query se comporte différemment sur Vs IPv4. IPv6 Environment

Ce sont les données dans la base de données.

enter image description here

Voici comment je fais une recherche normalement.

// $ap = '102030405067'; 
$gw = Gateway::where('cpe_mac','=',$ap)->first(); 
dd($gw); 

Dans mes IPv4 Mise en place, je suis arrivé:

{#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" 
} 

Dans mon IPv6 mis en place, je suis arrivé:

null


Essayez # 2

dd(Gateway::all());.

Résultat

En IPv4, je me suis retourné tous les dossiers.

enter image description here

En IPv6, je suis cette collection vide

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

enter image description here


La partie la plus déroutante est, d'autres tables semble fonctionner correctement, cette gateways semble être le seul à causer le problème. J'ai triplé le nom de mon modèle de passerelle et le nom de la table. Ils ont orthographié correclty.


  • Avez-vous les gars vu quelque chose comme ça avant?

  • Comment pourrait-on aller plus loin et déboguer ce problème?

  • Que dois-je essayer d'autre?

Répondre

2

Pour être honnête - Je ne pense pas que ce soit possible.

Assurez-vous que dans les deux cas $ap contient exactement la même valeur. Vous pouvez utiliser trim($ap) juste au cas où vous soyez sûr qu'il ne contient pas de caractères spéciaux supplémentaires.

Assurez-vous également que sur les deux machines virtuelles, vous avez les mêmes données dans la base de données. Maintenant, il semble dans une VM que vous avez des données dans la base de données et dans la seconde vous ne le faites pas.

EDIT

Il est impossible, il y a un problème direct Laravel, donc:

  • assurez-vous que dans les deux machines virtuelles que vous avez des données dans vos bases de données - sur les deux machines virtuelles exécuter SELECT * FROM gateways de vérifier à la fois vous avez des enregistrements (vous n'avez pas mentionné que les deux VM utilisent la même base de données donc je suppose qu'ils sont différents)
  • assurez-vous que dans les deux machines virtuelles vous avez une base de données valide dans votre fichier .env
  • sur les deux VMS courent php artisan config:clear juste pour vous assurer de ne pas avoir mis en cache une connexion de base de données non valide
+0

Permettez-moi de cette 'trim ($ ap)' – ihue

+0

Non, ça ne fonctionne pas. Même résultat – ihue

+0

J'ai essayé 'dd (Gateway :: all());'. En IPv4, j'ai récupéré tous les enregistrements. En IPv6, j'ai cette collection vide 'Collection {# 542 \ u25bc #items: [] }' – ihue