0

我想在我的“客户”表中查找客户的名字。

我唯一得到的是一个空数组。

例如,我输入参数 'q' 值 'E' 以从我的数据库中获取客户 Elena,因为我得到了一个唯一的空数组。

我使用以下代码获取 first_name : $search = Input::get('q');

    if($search)
    {
        $customers = Customer::all()->where('full_name', 'LIKE', "%{$search}%");
        return ($customers);
    }

有人能帮我吗?

4

2 回答 2

3

您的查询不起作用,因为您all()where(). 这实际上并没有错,但它有不同的行为。

当您调用 时all(),它实际上会执行 SQL 查询。之后,任何链式方法都被调用到一个Eloquent Collection类中,并且它还有一个 where 方法,但这更简单,因为它在 PHO 上运行而不是在 SQL 上运行。

由于该集合的where()方法不支持 LIKE 运算符,因此它可能正在搜索一个恰好是%E%.

希望它可以帮助您理解为什么您的查询不能按预期工作。

于 2019-07-26T23:40:44.647 回答
0

试试这个

$customers = Customer::where('full_name', 'LIKE', "%{$search}%")->get();

Laravel 雄辩

于 2019-07-26T23:22:10.357 回答