Laravel获取特定的列名值,并将列名作为字符串传递给DB结果

Laravel获取特定的列名值,并将列名作为字符串传递给DB结果,laravel,eloquent,Laravel,Eloquent,我想得到列名存储在数组中的特定列的结果 我有一个数组,其中包含表名和必需的列: $table_info = ['table_name' => 'users', 'column_name' => 'email']; 我成功地将这些值传递给DB类查询,并且它工作正常 $document = DB::table($table_info['table_name']) ->select($table_info['column_name'])

我想得到列名存储在数组中的特定列的结果

我有一个数组,其中包含表名和必需的列:

$table_info = ['table_name' => 'users', 'column_name' => 'email'];
我成功地将这些值传递给DB类查询,并且它工作正常

$document = DB::table($table_info['table_name'])
            ->select($table_info['column_name'])
            ->where('id', 1)
            ->first();
但当我尝试根据
$table\u info['column\u name']
获取查询结果时,它抛出错误:

return $document->$table_info['column_name'];
错误:

数组到字符串的转换


必须在要访问的动态属性周围放上花括号:

return$document->{$table\u info['column\u name']};
这样,整个
$table\u info['column\u name']
将被完全读取,而不仅仅是
$table\u info
,它是一个数组