php - 如何在 Laravel 中组合带有各种可选参数的查询?

标签 php mysql web laravel laravel-4

我有一项关于数据库的研究要做。我并不总是会使用所有参数。用户可能想搜索姓名,而不是地址,反之亦然。

我试过使用 advanced wheres甚至 unions ,但似乎都不起作用。他们都给我一个 SQL 错误“一般错误:1221 UNION 和 ORDER BY 的不正确使用”。

这是我试过的一段代码

$city_name = ($city_name != null) ? DB::table('cities')->where('name', 'LIKE', "%$city_name%") : DB::table('cities');
$state  = ($state_id != '--') ? DB::table('cities')->where('state_id', '=', $state_id) : DB::table('cities');

$cities = DB::table('cities')->union($city_name)->union($state)->orderBy('name')->get();

但它给了我上述错误。

我真正想做的是动态地选择我在查询中输入的参数,甚至“即时”组合它。 有人知道怎么做吗?

如果我说不清楚,请在评论中让我知道...

最佳答案

我想你需要这样的东西:

$query = DB::table('cities');

if ($city_name != null)
{
    $query->where('name', 'LIKE', "%$city_name%");
}

if ($state_id != '--')
{
    $query->where('state_id', '=', $state_id);
}

$cities = $query->orderBy('name')->get();

关于php - 如何在 Laravel 中组合带有各种可选参数的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19116480/

相关文章:

php - 是否可以从PHP监视服务器响应代码(http状态代码),该如何执行?

php - 我如何在亚马逊 EC2 云上每 2 小时运行一次 PHP 脚本?

php - mySql 将两个 SELECT 查询与 JOIN 结合起来

php - 带有附加列的 SQL 数据透视表

PHP 检查 XML 中是否存在元素

php - 从选择标签中获取值(自动制作)

php - SQL 和 PHP 聚合统计信息,使用 COUNT 数百次的性能问题

python - 使用 Django 用户模型

html - hr 标签导致两个部分之间的边距

ios - 如何检查用户是否在网页中安装了移动应用程序?