大家好 我在使用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
)
答案 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);