Я пытаюсь передать свои забронированные места в лезвие, но мои foreach
дублирующие значения / флажки, здесь я использую два foreach
, оба зависят друг от друга, поэтому я не могу удалить
1-й foreach - @foreach($seat as $key => $item)
эта петля связана со всеми сиденьями (49), которая идет от bus_table
2-й foreach - @foreach($bookingSeat as $seer)
эта петля связана с забронированным сиденьем, которая идет от bookings_table
затем проверка с помощью if condition
, затем вызов css
для показа забронированного места
Моя проблема: 
1-е место foreach = 49 *3 = количество строк в bookings_table
Собрать:
public function booking(Request $request)
{
//river is used to pass important params with flow of it from page to page
$seat = $request->seat;
$buses_id = $request->buses_id;
$schedules_id = $request->schedules_id;
$data = Buses::where('buses_id', $buses_id)->first();
$seat = json_decode($data->seat_layout, true);
$front = json_decode($data->front_layout, true);
$bookingSeat = Bookings::where('schedules_id', $schedules_id)->where('profile', 'booked')->get();
$bookingSeat = $bookingSeat->map(function ($bookSeat) {
$bookSeat->seat = explode(",", $bookSeat->seat);
return $bookSeat;
});
return view('frontend.booking', ['seat' => $seat, 'buses_id' => $buses_id, 'schedules_id' => $schedules_id, 'front' => $front, 'bookingSeet' => $bookingSeat]);
}
blade.php
<div class="bus">
@foreach($seat as $key => $item)
@foreach($bookingSeet as $seer)
<div class="col-md-1">
<div class="seats back seats
@if(in_array($item['name'], $seer['seat']))
activeSeat
@endif"
data-id="{{$key}}">
<div class="special-attributes"></div>
@if(isset($item['name'])){{$item['name']}}@else 11A @endif
<input type="checkbox" name="seat_id[]" id="{{$key}}" value="{{$key}}">
</div>
</div>
@endforeach
@endforeach
</div>
таблица бронирования:
bookings_id users_id schedules_id buses_id routes_id seat price profile
1 1 6 1 3 1 Null booked
2 1 6 1 3 2 Null booked
3 1 6 1 3 3 null booked
arrayseet array
Collection {#418 ▼
#items: array:3 [▼
0 => Bookings {#432 ▶}
1 => Bookings {#433 ▶}
2 => Bookings {#434 ▶}
]
}
bookingseet один массив выглядит так (убрал другую информацию, чтобы уменьшить пространство)
Collection {#418 ▼
#attributes: array:10 [▼
"bookings_id" => 1
"users_id" => 1
"schedules_id" => 6
"buses_id" => 1
"routes_id" => 3
"seat" => array:1 [▼
0 => "1"
]
"price" => null
"profile" => "booked"
"created_at" => "2019-04-09 00:00:00"
"updated_at" => "2019-04-09 00:00:00"
]
#original: array:10 [▶]
}
Var_dump:
object(Illuminate\Database\Eloquent\Collection)#418 (1) { ["items":protected]=> array(1) { [0]=> object(App\Bookings)#98 (26) { ["fillable":protected]=> array(7) { [0]=> string(8) "buses_id" [1]=> string(8) "users_id" [2]=> string(12) "schedules_id" [3]=> string(9) "routes_id" [4]=> string(4) "seat" [5]=> string(5) "price" [6]=> string(7) "profile" } ["primaryKey":protected]=> string(11) "bookings_id" ["connection":protected]=> string(5) "mysql" ["table":protected]=> NULL ["keyType":protected]=> string(3) "int" ["incrementing"]=> bool(true) ["with":protected]=> array(0) { } ["withCount":protected]=> array(0) { } ["perPage":protected]=> int(15) ["exists"]=> bool(true) ["wasRecentlyCreated"]=> bool(false) ["attributes":protected]=> array(10) { ["bookings_id"]=> int(6) ["users_id"]=> int(1) ["schedules_id"]=> int(10) ["buses_id"]=> int(3) ["routes_id"]=> int(7) ["seat"]=> array(1) { [0]=> string(1) "1" } ["price"]=> NULL ["profile"]=> string(7) "booked" ["created_at"]=> string(19) "2019-04-23 00:00:00" ["updated_at"]=> string(19) "2019-04-23 00:00:00" } ["original":protected]=> array(10) { ["bookings_id"]=> int(6) ["users_id"]=> int(1) ["schedules_id"]=> int(10) ["buses_id"]=> int(3) ["routes_id"]=> int(7) ["seat"]=> string(1) "1" ["price"]=> NULL ["profile"]=> string(7) "booked" ["created_at"]=> string(19) "2019-04-23 00:00:00" ["updated_at"]=> string(19) "2019-04-23 00:00:00" } ["changes":protected]=> array(0) { } ["casts":protected]=> array(0) { } ["dates":protected]=> array(0) { } ["dateFormat":protected]=> NULL ["appends":protected]=> array(0) { } ["dispatchesEvents":protected]=> array(0) { } ["observables":protected]=> array(0) { } ["relations":protected]=> array(0) { } ["touches":protected]=> array(0) { } ["timestamps"]=> bool(true) ["hidden":protected]=> array(0) { } ["visible":protected]=> array(0) { } ["guarded":protected]=> array(1) { [0]=> string(1) "*" } } } }
Один массив $ seat:
array:49 [▼
0 => array:4 [▼
"style" => "position: relative;"
"id" => 0
"name" => "1"
"profile" => ""
]
я пробовал так много способов, но бесполезно, я действительно застрял с этой проблемой