微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您可以使用查询生成器在laravel中在运行时使用动态WHERE子句来生成查询吗?

所以我知道如果我构建一个动态sql字符串,我可以执行以下操作

$sql = "SELECT * FROM " . $table;

$first = 1;
foreach($items as $key => $val)
{
   if($first) $sql .= " WHERE ";
       else $sql .= " AND ";
   $sql .= $key . " LIKE " . $VAL;
   $first = 0;
}

然后调用DB :: Query($sql);

但这不会自动保护用户输入.

如果我在laravel中使用查询生成器,则用户输入将被自动清除,但是我不知道如何在运行时使用查询生成器创建具有动态数量的where子句的查询.这可能吗?

解决方法:

$query = $tableModel->newQuery();

foreach($items as $key => $val) {
    $query->where($key, "LIKE", '%'.$val.'%');
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。