【发布时间】:2015-02-13 22:08:02
【问题描述】:
我想查询一个雄辩的模型。目前,它是这样完成的:
$query = People::query()->where('something', '=', $something');
我想添加 3 个下拉菜单供用户选择他或她想要查找的人员类型。这些下拉菜单将是sex、hair color 和body type,当然它们都是可选的。如果填写,这些值也将在查询字符串中。
这是我尝试做的:
if (Input::has('sex')) {
$query = People::query()->where('sex', '=', $sex);
}
else
if (Input::has('sex') && Input::has('haircolor')) {
$query = People::query()->where('sex', '=', Input::get('sex'))->where('hair_color', '=', Input::get('haircolor'));
}
else
if (Input::has('sex') && Input::has('bodytype')) {
$query = People::query()->where('sex', '=', Input::get('sex'))->where('body_type', '=', Input::get('bodytype'));
}
else
if (Input::has('sex') && Input::has('haircolor') && Input::has('bodytype')) {
$query = People::query()->where('sex', '=', Input::get('sex'))->where('hair_color', '=', Input::get('haircolor'))->where('body_type', '=', Input::get('bodytype'));
}
else {
$query = People::query();
}
除了是非常丑陋的意大利面条代码之外,主要问题是第一个条件几乎总是匹配,所以它不准确。
有没有简单的方法来做到这一点?
【问题讨论】:
标签: php database laravel eloquent