php - 如何在 Laravel 5 中编写此查询

标签 php mysql laravel laravel-5 laravel-5.1

我在 Laravel 5.1 中编写此查询时遇到困难,

select * from `host_requests` where `host_id` = 5 and (`email` LIKE "%v%" or `request_url` LIKE "%v%")

此查询的目的是获取与 host_id = 5 关联的记录,并且 email 和 request_url 是可选的,如果它们设置,则应使用 LIKE 子句。 我在 Laravel 中这样编写查询

$searchname = "v";
$hostid = "5";
$data = HostRequest::where('email', 'LIKE', '%' . $searchname . '%')
                ->where('host_id', $hostid)
                ->orwhere('request_url', 'LIKE', '%' . $searchname . '%')
                ->latest('id')
                ->paginate($size);

它正在获取与 host_id = 5 无关的所有记录。

非常感谢任何帮助..谢谢

最佳答案

您应该将 where() 与闭包一起使用,如下所示:

$data = HostRequest::where('host_id', $hostid)
               ->where(function($q) use($searchname) {
                   $q->where('email', 'like', '%'.$searchname.'%')
                     ->orWhere('request_url', 'like', '%'.$searchname.'%');
               })->orderBy('id', 'desc')
               ->paginate($size);

关于php - 如何在 Laravel 5 中编写此查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40479676/

相关文章:

javascript - 如何在javascript中打印php数组

php - php中基于 token 的身份验证

javascript - 从单一的十六进制颜色创建互补色、三元色和单色调色板

php - 如何将页面编码为utf8

php - Laravel Query Builder 的 updateOrInsert 函数有什么特点?

mysql - 如何使用Asp.net从MySql数据库获取salt?

php - PHP 使用 mysqli_connect 时出现服务器超时/登录错误

php - 如何在 Laravel Blade 模板引擎中迭代二维数组

php - 授予 Laravel 5 中新角色的权限

Laravel - 更新日期的验证规则