我正在尝试获取用户在表单中提供的信息的获取结果。
在表单中,用户可以选择$city
,$skillLevel
,province
和$category
。
显然,当表单保留为空时,它将返回所有行。填写每个字段时,除了$city
之外,它将从每个城市返回带有所选选项的结果。
我仍然很有说服力,我现在已经坚持了很长一段时间。希望有人可以帮助我。
这是控制器,它调用模型中的函数来检索结果:
/**
* Returns all vacatures
* @param string $city
* @param string $skillLevel
* @param string $province
* @param string $category
*/
public function vacatureOverzicht($city, $skillLevel, $province, $category)
{
$vacatures = $vacatures = with(new Vacature)->getVacatures($city, $skillLevel, $province, $category);
return View::make('vacatures')->with('vacatures', $vacatures);
}
这是我的模型功能(显然仍然是空的):
/**
* Return results with options given by user
*
* @param $city
* @param $skillLevel
* @param $province
* @param $category
*/
public function getVacatures($city, $skillLevel, $province, $category) {
$vacatures = DB:table('vacatures')
// Do stuff to select rows
->get();
return $vacatures;
}
答案 0 :(得分:1)
不是一个一个地传递它们,而是创建一个数组并将其传递给:
public function getVacatures(array $filter = [])
{
$columns = [
'city',
'province',
'category',
'skill_level',
];
$query = $this->newQuery();
foreach ($filters as $column => $value)
{
if ( ! in_array($column, $columns)) continue;
$query->where($key, $value);
}
return $query->get();
}