Laravel фильтр базы данных с контроллера - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь сделать простой фильтр для индексации на мой взгляд с помощью <option>. по умолчанию в представлении индекса будут показаны все данные, но я хочу, чтобы представление показывало данные на основе созданного мной фильтра и отображало их на той же странице.

это индекс (включая <option>) view

<form method="get" action="/">
  <select name="tag" id="tag_select">
      <option value=""> -pilih- </option>
      <option value="diproses">diproses</option>
      <option value="selesai">selesai</option>
  </select>
    <script src="{{ asset('js/tag.js') }}" charset="utf-8"></script>
      <input type="submit" name="submit" value="cek">
    {{csrf_field()}}
    <input type="hidden" name="_method" value="get">
  </form>

<?php foreach ($blogs as $blog ): ?>
   <tr><td><b>Tanggal: </b></td><td>{{ $blog -> created_at}}</td><br>
   <tr><td><b>SI: </b></td><td>{{ $blog -> sistem}}</td><br>
   <tr><td><b>Subjek:</b></td><td><a href="/{{ $blog -> id}}"> {{ $blog -> title }}</a></td></tr> 
   <br>
   <tr><td><b>Oleh: </b></td><td>{{ $blog -> nama}}</td></tr> <br>
   <tr><td><b>Status: </b></td><td>{{ $blog -> tag}}</td></tr> <br> // i want to filter the data based on this
   <hr>
   <?php endforeach; ?>

это метод фильтрации

public function filter(Request $request)
{

  $blogs = DB::table('blogs')->where('tag', $request -> tag)->get();
  return view('koding', ['blogs' => $blogs]);

}

кроме того, это мой контроллер индекса с его маршрутом

Route::get('/admin', 'HomeController@admin')->name('admin');

.

  public function admin()
{
  $blogs = blog::paginate(10);
  return view('koding', ['blogs' => $blogs]);
}

Не могли бы вы, ребята, сказать мне, что не так и каков путь для метода фильтрации? спасибо

1 Ответ

0 голосов
/ 21 января 2020

Вы можете попробовать

public function admin(Request $request)
{
  $blogs = blog::when($request->tag, function ($query, $tag) {
    return $query->where('tag', $tag);
  })->paginate(10);
  return view('koding', ['blogs' => $blogs]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...