Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Laravel多列雄辩搜索查询_Mysql_Sql_Laravel 4 - Fatal编程技术网

Mysql Laravel多列雄辩搜索查询

Mysql Laravel多列雄辩搜索查询,mysql,sql,laravel-4,Mysql,Sql,Laravel 4,我是Laravel的新手,目前正在与Laravel4合作。我正在尝试在我的项目中添加多列搜索功能。我可以进行单列雄辩搜索查询,但老实说,我不知道如何在Laravel中进行多列雄辩搜索查询。我有两个下拉菜单 1.地点 2.血型 我想根据某个位置搜索一个具有特定血型的用户。也就是说,用户将从这两个下拉菜单中一次选择一个位置和血型,然后点击搜索按钮 在我的数据库中,我有两列,一列包含某个用户的位置,另一列包含某个用户的血型。现在,对于这样的搜索,什么是有说服力的查询呢?只需为您需要搜索的每个字段链接w

我是Laravel的新手,目前正在与Laravel4合作。我正在尝试在我的项目中添加多列搜索功能。我可以进行单列雄辩搜索查询,但老实说,我不知道如何在Laravel中进行多列雄辩搜索查询。我有两个下拉菜单

1.地点 2.血型

我想根据某个位置搜索一个具有特定血型的用户。也就是说,用户将从这两个下拉菜单中一次选择一个位置血型,然后点击搜索按钮


在我的数据库中,我有两列,一列包含某个用户的位置,另一列包含某个用户的血型。现在,对于这样的搜索,什么是有说服力的查询呢?

只需为您需要搜索的每个字段链接
where

// AND
$results = SomeModel::where('location', $location)->where('blood_group', $bloodGroup)->get();

// OR
$results = SomeModel::where('location', $location)->orWhere('blood_group', $bloodGroup)->get();
借助以下作用域,您可以更轻松地使用:

// SomeModel class
public function scopeSearchLocation($query, $location)
{
  if ($location) $query->where('location', $location);
}

public function scopeSearchBloodGroup($query, $bloodGroup)
{
  if ($bloodGroup) $query->where('blood_group', $bloodGroup);
}

// then 
SomeModel::searchBloodGroup($bloodGroup)->searchLocation($location)->get();

这只是一个合理的例子,根据您的需要调整它。

这是一个很好的方法,但我认为在某些地方有一个错误,因为laravel不允许您访问非静态函数,所以不使用

SomeModel::searchBloodGroup($bloodGroup)->searchLocation($location)->get(); 
你可以简单地使用

SomeModel::BloodGroup($bloodGroup)->Location($location)->get();
请注意,searchBloodGroup已更改为BloodGroup,这就是您将如何将其用于所有其他应用程序的方式

    $errors = $connection->table('test_sessions_table')
->where('user_id', $user->id)
->where('status_question', 'false')->count('status_question');
在这个方法中,您的代码采用以下形式 SQL代码

或者你的代码看起来像这样

$errors = $connection->table('test_sessions_table')
->where('user_id', $user->id)
->orWhere('status_question', 'false')->count('status_question');
SQL代码

select count(`status_question`) as aggregate from `test_sessions_table` where `user_id` = ? or `status_question` = ?
就个人而言,我建议使用两个“where”

select count(`status_question`) as aggregate from `test_sessions_table` where `user_id` = ? or `status_question` = ?