我有一个数据库查询,如下所示:
$data = DB::table('settings')->select('value')->where('name', '=', $name)->get();
echo $data["value"];
但它给出了错误:
未定义的索引:值
如果我echo $data
;然后我得到以下结果:
[{"value":"theme_default"}]
答案 0 :(得分:1)
试试这个:
$data = DB::table('settings')->select('value')->where('name', '=', $name)->first();
echo $data["value"];
//or
echo $data->value;
答案 1 :(得分:1)
get()
返回一个Laravel Collection对象,当你尝试使用它时(例如echo
语句),该对象具有将其自身转换为字符串的魔术方法。正如您在JSON中看到的那样,$data
是一个数组或对象集合,因此在尝试获取值之前,您需要集合中的第一个:
$row = $data->first();
echo $row->value;
答案 2 :(得分:0)
您可以将结果转换为如下数组:
$data = DB::table('settings')
->select('value')
->where('name', '=', $name)
->get()
->toArray();
//then use the value of the first element
dd(@$data[0]['value']);
,但我强烈建议您使用Laravel Collection以使用其强大的方法。