Laravel 5:如何验证数组中是否包含以逗号分隔的数据库表字段中的值?

时间:2017-02-09 09:42:20

标签: php laravel laravel-5 eloquent laravel-5.1

所以,基本上我在数据库的表中有一个字段,其中包含一些用逗号分隔的值(类似于:value1, value2, value3)。我需要以某种方式检查这些值中的一个或多个是否包含在值数组中并检索模型。我想要一个使用Eloquent Model Query来实现这一目标的解决方案,如果模型查询不可能,那么查询生成器解决方案也可以,或者可能是替代方案。

1 个答案:

答案 0 :(得分:0)

尝试在where语句中使用一个函数,我在其中循环值数组,并使用like运算符查询模型,以检查字段值是否与数组中的值匹配,最后我有这样的事情:

$devices = explode(",", Input::get("devices"));
$products = Product::where(function ($q) use ($devices) {
   foreach ($devices as $device) {
      $q->orWhere("compatible_devices", "like", "%" . $device . "%");
   }
})->get();

到目前为止效果很好。