当我使用laravel DB类时,我找不到错误列名

时间:2017-03-02 07:43:34

标签: php laravel

  

大家好   我在使用laravel DB类时遇到了一些麻烦

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

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

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

当我手动执行此操作时

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

一切都很好。但是使用implode()函数我会收到此错误

  

找不到列:1054未知栏' onoma','上记''在'领域   表' (SQL:从'onoma', 'epitheto'选择xrister

2 个答案:

答案 0 :(得分:3)

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

pluck($column, $key) 2个单独的论点

pluck('column', 'key') 2个单独的字符串

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

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

答案 1 :(得分: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);