2017-03-02 52 views
0

大家 我有一些麻烦laravel DB类当我使用laravel DB类,我得到错误的列名未找到

$arr = ['onoma', 'epitheto']; 

    $data = "'".implode("', '", $arr) . "'"; 

    $content = DB::table($name)->pluck($data); 

当我做手工像

$content = DB::table($name)->pluck('onoma','epitheto'); 

一切工作正常。在 '字段 名单' 1054未知列'onoma ' 'epitheto'':但随着implode()功能我得到这个错误没有发现

列(SQL:选择xrister'onoma', 'epitheto'

+0

尝试一次'$数据= “ '” .implode( “ ''”,$ ARR)。 “'”;'删除所有的空格 –

+0

再次即时得到同样的错误 '未找到列:1054未知列''onoma','字段列表'中的'epitheto''(SQL:select''onoma','来自'xrister'的'epitheto')' – Eth0

+0

您删除了所有空格吗? –

回答

1

如果你使用PHP 5.6 +,那么你可以使用splat操作:

$arr = ['onoma', 'epitheto']; 

$content = DB::table($name)->pluck(...$arr); 

如果没有,那么你可以这样做:

$arr = ['onoma', 'epitheto']; 

$content = call_user_func_array([ DB::table($name), 'pluck' ], $arr); 
+0

非常感谢您使用splat运算符 – Eth0

3

在正常工作的示例中,您将2个参数传递给该方法调用。

pluck($column, $key) 2个独立的参数

pluck('column', 'key') 2个独立的串

在一个不工作,你正在传递一个字符串作为参数1。出于某种原因,您正在告诉pluck使用名为'onoma','epitheto'的单列。

pluck("'onoma', 'epitheto'") 1串,1个参数

相关问题