传递给函数时,Laravel变量值会丢失

时间:2017-09-04 17:20:30

标签: php mongodb laravel laravel-5

$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();

为什么会发生这种情况以及如何绕过这种情况。

1 个答案:

答案 0 :(得分:2)

查询返回的对象不是数组,因此请按如下方式使用:

如果您要检索 ID 列:$country->id;

也是如此,例如名称列:$states->name;

也可以使用trim尝试空白空间:

where('country_id', trim($country_id))