Я использую Laravel 5.5 с Eloquent и показываю гостиничные номера.На каждой странице комнаты я хочу отобразить другие комнаты внизу, но исключить выбранную.
Например, у нас есть 4 типа комнат (одноместные, двухместные, трехместные, студии).Когда пользователь заходит на страницу двухместного номера, внизу я хочу отобразить остальные три комнаты (одно-, трехместные, студио), поэтому в этом случае необходимо исключить «однокомнатные».
У меня естьсозданы включают в себя блейд-файлы комнаты-другое, но как я могу получить данные из базы данных и отобразить другие комнаты?
Вот части моего кода.
Контроллер:
public function room($slug) {
$room = Room::whereTranslation('slug', $slug)->first();
if($room->translate()->where('slug', $slug)->first()->locale != app()->getLocale()) {
return redirect(route('room', $room->translate()->slug));
}
return view('room', compact('room'));
}
Маршрут:
Route::get('/room/{slug}', 'RoomsController@room')->name('room');
Представление:
@extends('layouts.front')
@section('content')
<div class="main room">
<div class="header-image"></div>
<div class="container">
<div class="top text-center">
<div class="title"><h2>{{ $room->title }}</h2></div>
<div class="subtitle"><h4>{{ $room->subtitle }}</h4></div>
</div>
<div class="bottom">
<div class="row">
<div class="col-sm-6">
<div class="image">
<img src="{{ Storage::url($room->image) }}" />
</div>
</div>
<div class="col-sm-6">
<div class="body">{!! $room->body !!}</div>
</div>
</div>
</div>
@include('includes.rooms-other')
</div>
</div>
@endsection
Как видно из кода, я создал представление "rooms-other" в виде включаемого файла, нокак отобразить данные из других комнат?
РЕДАКТИРОВАТЬ: Я знаю, что я могу создать другой метод в контроллере и вызвать на маршруте с тем же видом, но как я могу получить исключенный результат?Мне нужно это с кодом.