Laravel-如何有效地运用口才的ORM来获取数据

时间:2019-01-22 00:16:31

标签: php laravel eloquent

我是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

因此,当我选择“房间类型床位”和“第2楼”时,第三个选择下拉列表将为BS201, BS202, BS203。如果我选择家庭房,并选择3楼,则第三个选择下拉列表将为FR201,然后如果我选择FR201,则床号应为1-UPPER(此处的值应为是那张床的ID号)

编辑:我的房间表的屏幕截图:http://prntscr.com/mac4o9

1 个答案:

答案 0 :(得分:0)

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

  1. 可用房间
  2. 在“选择”中运行一个Ajax并获得“房间类型”选项
  3. 在选择房间类型时运行ajax并获得Foor No的选项

对于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调用获取最新数据。