Подобные статьи и исключить результат с Laravel Eloquent - PullRequest
0 голосов
/ 25 июня 2018

Я использую 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" в виде включаемого файла, нокак отобразить данные из других комнат?

РЕДАКТИРОВАТЬ: Я знаю, что я могу создать другой метод в контроллере и вызвать на маршруте с тем же видом, но как я могу получить исключенный результат?Мне нужно это с кодом.

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете сделать это так в вашем контроллере:

public function room($slug) {
    $room = Room::whereTranslation('slug', $slug)->first();
    $other_rooms = Room::where('id', '!=' , $room->id)->get();

    if($room->translate()->where('slug', $slug)->first()->locale != app()->getLocale()) {
          return redirect(route('room', $room->translate()->slug));
    }
    return view('room', compact('room', 'other_rooms'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...