【发布时间】:2019-01-22 00:16:31
【问题描述】:
我是 Laravel 的新手,我正在用它创建一个预订系统。现在我想问一下如何使用 Eloquent 从数据库中获取数据是否有更短的方法/正确的方法。我需要显示一系列选择房间的数据。(screenshot- I will hide the other select using jQuery based on the selected option on the first 2 drop downs. I don't want to use AJAX for this)。
现在我正在做的是将不同的数组从控制器传递到刀片:
$rooms = Room::where('Availability',0)->get();
$room_types = Room::distinct()->select('RoomType')->get();
$floor_nos = Room::distinct()->select('FloorNo')->get();
但我不知道如何根据房间类型和楼层号对它们进行分组: 这是我的数据:
Room Type - Bedspace
Floor No - 1
Room Nos [BS201, BS202, BS203, BS301,BS302,BS303, FR201, FR301(3rd Floor Family Rooms)]
Each Room No has Bed Nos. [BS201(1-UPPER, 2-UPPER),BS202(1-UPPER,2-UPPER)]
我需要展示这个:
First dropdown - Room Types
Second dropdown - Floor Nos
Third dropdown - Room Nos
Fourth dropdown - Bed Nos
因此,当我选择 Room Type Bedspace 和 Floor No 2 时,第三个选择下拉菜单将是 BS201, BS202, BS203。如果我选择 Family Room 和 Floor No 3,第三个下拉列表将是 FR201,然后如果我选择 FR201,Bed No 应该是 1-UPPER(这里的值是那张床的 ID没有)
编辑:我的房间表截图:http://prntscr.com/mac4o9
【问题讨论】:
-
嗨,保罗。我们能看到你的
rooms表的结构吗?此外,如果您想让下拉列表自动加载正确的子组,那么您需要进行某种页面刷新,或者使用 javascript 根据用户输入更改后续下拉列表,通过 ajax 或发送所有数据到页面,然后用js过滤。 -
当然,我会编辑我的帖子。这就是我的计划,我将在选项中添加data-*属性以使用js进行过滤。
-
是否有任何具体原因表明这一切都在一个表中,而不是相关的表?我认为这不会有太大的不同,只是想知道。
-
重新阅读您的问题,我们在这里解决什么具体问题?
-
我需要有一系列相互连接的下拉菜单,我的意思是我将如何有效地执行数据检索prntscr.com/macbt4,我的问题是我无法为家庭分开房间号房间和床位房间根据楼层号组合。关于桌子,你的意思是我应该有一张单独的桌子来记录房间类型、楼层等?我只需要将房间连接到签到。对不起,我对 Laravel 和 DB 创建真的很陌生。