J03Bukowski
J03Bukowski

Reputation: 132

Laravel - Store and Resume data for ALL the sessions

I use the laravel session with the database. I would like to know how to resume the informations are stored for ALL the sessions, that it means between all the row in the session table.

I am developing a booking room system. I use the session in this way:

First step: A user searches all the available room for a certain date. A list appears with all the available rooms.

Second step: After the user selects the room, it is redirected to the pay form.

In the first step when the user selects the room, the room id is stored in the session.

The things I would like to do is this: The session is used to store all the room are chosen by the users, in case two or more users are looking for a same room in the same period. So that the rooms are not available in the search of other users until the first user pays.

Laravel has a payload column where it stores all the key and value but it is only a sequence of letter and number.

Upvotes: 1

Views: 448

Answers (1)

manix
manix

Reputation: 14747

Laravel has a payload column where it stores all the key and value but it is only a sequence of letter and number

When you call \Session::put('foo', 'bar') the value es added into an associative array that keeps all data. If you are using database driver, then laravel serialize the array to store it as a string. That is why you only can see a lot of text. So, working with session will be so complicated because you has to serialize/unserialize over again.

How to block the room? Well, there are many ways to do that, all depends from your architecture. For example, you can store selected rooms in other table for 5 minutes (enough time to pay). Lets say you can work with two tables:

selected_rooms
------------------
number | expire_at

and...

rooms
number | beds | busy
  1. The user search for a cool room. The system must ignores all the rooms that have references to selected_rooms table that has not been expired.

  2. When the user select a room, you store it at selected_rooms room table with a expire_at value of now + 5 minutes.

When the user pay the room, you can remove it from selected_rooms. If the user just logout or just leave the pc, it does not matter, because after 5 minutes the room is available again

Upvotes: 1

Related Questions