传递给Illuminate \ Database \ Connection :: prepareBindings()的参数1必须为数组类型,给定null

时间:2020-01-18 10:15:26

标签: laravel

public function search(Request $request)
{
    $search = $request->get('search');
    $image = DB::select(`produits.id`, `produits.name`, `categories.name`, `produits.description`, `produits.volume`, `produits.poids`, `users.name`, `users.numtel`)
        ->from(`produits`)
        ->from(`users`)
        ->from(`categories`)
        ->where(`produits.category_id`, `=`, `categories.id`)
        ->where(`users.id`, `=`, `produits.user_id`)
        ->where(`produits.description`, `=`, [$search])
        ->get();


    return view('home', ['produits' => $image]);
}

这是我得到的错误:

传递给Illuminate \ Database \ Connection :: prepareBindings()的参数1必须为数组类型,给定为空

1 个答案:

答案 0 :(得分:0)

上面显示的代码有很多问题。

首先,使用单引号或双引号('")而不是反引号(`)。


直接从select()外观调用DB时,将在select()上调用Connection方法,这与{ {1}}类。 select()实例上的select本质上是用于执行原始查询。

要获取Builder实例,您可以使用ConnectionBuilder(本质上是query()方法)来启动链,例如

table()

from()

AFAIK,您无法使用查询生成器指定多个表,因此您将需要联接这些表。


最终,您查询的内容应类似于:

DB::table('table_name)