使用' LIKE'在Laravel中进行数组到字符串转换询问

时间:2017-08-17 12:26:04

标签: php laravel-5.4

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

  

数组到字符串转换

有点理解,但是,我不知道如何做对。你能帮我吗? 这是我的代码:

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

3 个答案:

答案 0 :(得分:2)

$collection = DB::table('your_table')->select('*');
foreach($chassis as $key=>$val) {
    if($key == 0) {
        $collection->where('model_type_en', 'like', "%$val%"));
    }
    $collection->orWhere('model_type_en', 'like', "%$val%"));
}
$name = $collection->get();

这可能有用。您还可以查看参考:laravel querybuilder how to use like in wherein function

(原错误的ans:)

如果chassis是字符串,则可以执行以下操作:

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

您可以阅读文档:https://laravel.com/docs/5.4/queries

答案 1 :(得分:0)

你可以使用就像确保$ chassis是一个数组

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

答案 2 :(得分:0)

你要做的是IN和LIKE的结合。

我建议RLIKE这是一个LIKE但是有REGEX。 虽然这是特定于mysql的,但我怀疑是否有Laravel构建方法来实现这一点。

更新

可悲的是,我错了,虽然RLIKE可以做到。而是在这里找到你的答案: Is there a way to combine IN and LIKE in MySQL?