2016-02-15 1 views
0

J'essaye de récupérer les valeurs correspondantes de 2 tables, afin de faire un enregistrement d'utilisateur.Appel à une fonction membre où() sur un non-objet? Laravel 5.2

Mon code:

$states = ['1','2']; 
$cities = DB::table('cities')->get(); 
$state = $faker->randomElement($states); 
$city= $faker->randomElement($cities->where('state_id',$state)->value('id')); 

réponse actuelle:

"Appel à une fonction membre où() sur un non-objet".

Éditer 1. Traduit en anglais pour une meilleure compréhension.

Répondre

1

Il devrait être quelque chose comme ce qui suit:

$states = ['1','2']; 
$state = $faker->randomElement($states); 
$cities = DB::table('cities')->where('state_id', $state)->lists('id')->all(); 
$city = $faker->randomElement($cities); 
+0

cela fonctionne! donne maintenant l'erreur "Objet de la classe stdClass n'a pas pu être converti en chaîne" mais au moins je peux travailler avec ça, merci! –

+0

Veuillez essayer la dernière ligne comme '$ city = City :: find ($ faker-> randomElement ($ cities))' – user2094178

0

essayer cette

$comuna = $faker->randomElement($comunas->where('region_id',$region[0])->where('region_id',$region[1])->get(); 
+0

donne toujours l'erreur « Appel à une fonction membre où() sur un non-objet », je ne sais pas pourquoi , je suis obviusly en utilisant un tableau:/ –