数据库查询无法正常工作

时间:2016-12-13 18:24:15

标签: laravel laravel-5

我有一个数据库查询,如下所示:

$data = DB::table('settings')->select('value')->where('name', '=', $name)->get();
        echo $data["value"];

但它给出了错误:

  

未定义的索引:值

如果我echo $data;然后我得到以下结果:

[{"value":"theme_default"}] 

3 个答案:

答案 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以使用其强大的方法。