Laravel - Как эффективно применять Eloquent ORM при получении данных - PullRequest
0 голосов
/ 22 января 2019

Я новичок в Laravel и создаю с ним систему бронирования.Теперь я хочу спросить, есть ли более короткий / правильный способ получения данных из БД с помощью Eloquent.Мне нужно отобразить данные из ряда выбора для выбора номеров. (снимок экрана - другой выбор будет скрыт с помощью jQuery на основе выбранного параметра в первых 2 раскрывающихся списках. Я не хочу использовать AJAXдля этого) .

Теперь я делаю разные массивы от контроллера к блейду:

$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.И если я выберу Family Room и Floor No 3, третий выпадающий список будет FR201, тогда, если я выберу FR201, Номер кровати должен быть 1-UPPER (значение здесь будет идентификатором этой кроватинет)

РЕДАКТИРОВАТЬ: снимок экрана с таблицей моих комнат: http://prntscr.com/mac4o9

1 Ответ

0 голосов
/ 22 января 2019

Я предлагаю вам создать три выпадающих

  1. Доступные комнаты
  2. При выборе запустите один Ajax и получите опцию для Тип комнаты
  3. При выборе Тип комнаты Run 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...