Laravel多列雄辩搜索查询
问题描述:
我是非常新的Laravel,目前与Laravel4一起工作。我试图在我的项目中添加多列搜索功能。我可以做单列雄辩搜索查询,但老实说我不知道如何在laravel中做多列的雄辩搜索查询。我有两个下拉菜单Laravel多列雄辩搜索查询
1.Locatiom 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不有已更改为BlooGroup,这就是你将如何使用它的所有其他
非常感谢,这个答案似乎很有帮助.. – RTan 2014-09-01 06:43:56