Php Laravel-如何在获取数据时有效地应用雄辩的ORM

Php Laravel-如何在获取数据时有效地应用雄辩的ORM,php,laravel,eloquent,Php,Laravel,Eloquent,我是Laravel的新手,我正在用它创建一个预订系统。现在我想问一下,对于如何使用Elounting从数据库中获取数据,是否有一种较短的方法/正确的方法。我需要显示一系列用于选择房间的select中的数据 现在我要做的是将不同的阵列从控制器传递到刀片: $rooms = Room::where('Availability',0)->get(); $room_types = Room::distinct()->select('RoomType')->get(); $floor_n

我是Laravel的新手,我正在用它创建一个预订系统。现在我想问一下,对于如何使用Elounting从数据库中获取数据,是否有一种较短的方法/正确的方法。我需要显示一系列用于选择房间的select中的数据

现在我要做的是将不同的阵列从控制器传递到刀片:

$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
因此,当我选择房间类型床位和2楼时,第三个选择下拉列表将是
BS201、BS202、BS203
。如果我选择家庭会议室和3号楼,第三个选择下拉列表将是
FR201
,然后如果我选择
FR201
,床号应该是
1-UPPER
(这里的值将是该床号的ID)


编辑:我的房间表的屏幕截图:

我建议您创建三个下拉列表

  • 可用房间
  • 在选择时,为房间类型运行一个Ajax和get选项
  • 在选择房间类型时,为Foor No运行ajax和get选项
  • 对于Ajax,您可以使用以下代码

    jQuery( ajax {
         url: '{!! route('frontend.get-room-types') !!}',
         method: 'POST',
         dataType: 'JSON',
         data: {
             selectedRoom: document.getElementById("selectedRoom").value
         },
         success: function(data)
         {
             //Set Options for Room Type.
         },
         error: function(data)
         {
            alert("Something went Wrong");
         }
    
    })
    

    通过这种方式,您可以通过Ajax调用获取最新数据。

    Hi Paul。我们能看到您的
    房间
    桌子的结构吗?此外,如果你想让下拉列表自动加载正确的子组,那么你要么需要进行某种页面刷新,要么使用javascript根据用户输入更改后续下拉列表,要么通过ajax,要么将所有数据发送到页面,然后使用js对其进行过滤。当然,我会编辑我的帖子。这就是我的计划,我将向选项中添加data-*属性,以使用js进行筛选。是否有任何具体原因使这一切都在一个表中,而不是有相关的表?我不认为这会有多大区别,只是想知道。重读你的问题,我们在这里解决的具体问题是什么?我需要一系列相互连接的下拉列表,我的意思是如何高效地执行数据检索,我的问题是,我不能将家庭房间和床位房间的房间号分开,它们是根据楼层号合并的。关于桌子,您的意思是我应该为房间类型、楼层等单独设置一张桌子?我只需要把房间连接到登记处。很抱歉,我对Laravel和DB creation非常陌生。