$country = DB::table('location_countries')->where('name','India')->first();
$country_id = $country['_id'];
echo $country_id;
$states = DB::table('location_states')->where('country_id',$country_id)->first();
echo $states['name'];
上面是我在控制器中运行的代码我已经使用jenseggers / mongodb进行mongodb连接。
直到这部分代码我可以看到当我做回声时的响应
$country = DB::table('location_countries')->where('name','India')->first();
$country_id = $country['_id'];
echo $country_id;
将$country_id
传递给下面的函数后,它显示无响应
$states = DB::table('location_states')->where('country_id',$country_id)->first();
echo $states['name'];
如果我像下面的代码一样直接传递字符串而不是传递$country_id
变量,那么我得到一个响应但是如果我传递一个变量则没有响应。
$states = DB::table('location_states')->where('country_id','value-here')->first();
为什么会发生这种情况以及如何绕过这种情况。
答案 0 :(得分:2)
查询返回的对象不是数组,因此请按如下方式使用:
如果您要检索 ID 列:$country->id;
州也是如此,例如名称列:$states->name;
也可以使用trim
尝试空白空间:
where('country_id', trim($country_id))