Php 使用';比如';查询

Php 使用';比如';查询,php,laravel-5.4,Php,Laravel 5.4,很抱歉问了个新手问题。 我遇到了一个问题。我想在数据库中搜索数组中包含的值。 但我有一个错误: 数组到字符串的转换 我有点明白为什么,但我不知道怎么做才对。你能帮我吗? 这是我的代码: public function chassis($chassis){ return $this->builder->whereIn('model_type_en', 'LIKE', (array)"%$chassis%"); } 请不要嘲笑我:) 这可能行得通。您还可以查看ref: (原文错

很抱歉问了个新手问题。 我遇到了一个问题。我想在数据库中搜索数组中包含的值。 但我有一个错误:

数组到字符串的转换

我有点明白为什么,但我不知道怎么做才对。你能帮我吗? 这是我的代码:

public function chassis($chassis){
    return $this->builder->whereIn('model_type_en', 'LIKE', (array)"%$chassis%");
}
请不要嘲笑我:)

这可能行得通。您还可以查看ref:

(原文错误:ans)

如果机箱
是一个字符串,则可以执行以下操作:

$this->builder->where('model_type_en', 'LIKE', "%$chassis%");

您可以阅读以下文档:

您可以像确保$chassis是一个阵列一样使用

public function chassis($chassis)
{
    return $this->builder->whereIn('model_type_en', $chassis);
}

你要做的是一个IN和一个LIKE的组合

我会建议这是一个类似,但与正则表达式。 虽然这是特定于mysql的,所以我怀疑是否有一个Laravel构建可以做到这一点

更新

可悲的是,我错了,尽管埃里克能做到。相反,请在以下帖子中找到您的答案:

我担心他仍然会得到数组到字符串的转换hassis是一个数组:)我喜欢纯laravel解决方案,尽管由于OR语句的数量,这可能应该是嵌套的,以避免在添加更多条件时出现混乱谢谢。给我一些时间来尝试一下虽然这解决了数组到字符串的转换问题,但他不能在w-like条件中使用通配符,如果你想使用where(),那么就不需要使用like,但他的问题表明他需要like和INLike以及where-in是完全不同的东西。生成器可能会使用两个参数fieldname和string调用like方法。使用它而不需要对数组进行强制转换。很难,我需要制定一个解决方案。应用程序中的用户希望一次输入多个机箱号,结果应显示所有机箱号或至少与机箱号相似。问题是mysql不支持with array,而是需要创建多个like语句,并用or连接。然而,请注意,像这样大量的喜欢将使真正的效率低下query@MaciejPaprocki是啊,我有点想放弃喜欢,只是使用数组
public function chassis($chassis)
{
    return $this->builder->whereIn('model_type_en', $chassis);
}