【发布时间】:2017-04-27 21:15:26
【问题描述】:
我有一个度假旅游数据库,想同时按 3 个参数(目的地国家/地区、出发日期、酒店)对其进行排序。
所以我以 html 形式创建了三个输入(目的地、日期、酒店)
<form action="/search-tours" method="GET">
<input name="destination" type="text">
<input name="date" type="date">
<input name="hotel" type="text">
<button type=submit>Search tours</button>
我正在使用 Laravel,所以我的 php 代码在控制器中(“Tour”是模型 = 连接到数据库中的“tours”表)。
$destination = $request->get('destination');
$date = $request->get('date');
$hotel = $request->get('hotel');
$tours = Tour::where('destination', '=', $destination)
->where('departure', '=' , $date)
->where('hotel', '=', $hotel)
->get();
当我提交所有输入时它会给出正确的结果,但是当任何输入丢失时它根本不起作用。
我以为我可以通过 If-else 解决它,但后来我意识到可能有 7 种情况(1- 参数存在,0 - 缺失: 对于前目的地(1)-日期(0)-酒店(0)= 100,总计: 111, 100, 010, 001, 110, 011, 101 - 我们不关心 000)。如果我们有 4 个输入,它将是 15、5 个参数 - 31 等等。
所以写这么多if-else会很乏味,那就意味着还有另一种方法。
如果只给出 1 或 2 个输入,我应该采取什么方法使其工作?
【问题讨论】:
-
我从你的帖子中删除了一些借口,因为这不是一个糟糕的问题。 :)
-
其实,你能做类似stackoverflow.com/a/14179817/576767的事情吗
-
谢谢菲利克斯)也许你可以改变主题,这样对有同样问题的人会更有帮助?)(所以他们可以通过搜索更容易找到它,因为我找不到任何东西) .