Отображение laravel пагинационных ссылок дважды на странице - PullRequest
3 голосов
/ 12 февраля 2020

Я реализовал нумерацию страниц laravel в одном из моих проектов, где нумерация страниц работает как шарм.

У меня есть требование отображать ссылки нумерации страниц сверху и снизу таблицы. стол. Вот так

{!! $entries->render() !!}
<table class="table table-responsive" id="entries-table">
    <thead>
        <tr>
                <th>ID</th>
                <th>Advisor name</th>
        </tr>
    </thead>
    <tbody>
    @forelse($entries as $entries)
        <tr>
            <td> {{ $entries->id }} </td>
            <td> {{ $entries->name }} </td>
        </tr>
    @empty
    <tr>
        <td>
            <p>No record found.</p>
        </td>
    </tr>
    @endforelse
    </tbody>
</table>
{!! $entries->render() !!}

Когда я пытаюсь использовать {!! $entries->render() !!} еще раз в нижней части таблицы или где-нибудь на той же странице, выдается следующее сообщение об ошибке:

ErrorException (E_ERROR) Вызов неопределенного метода App \ Models \ Entries :: render ()

вот мой код контроллера

public function index(Request $request)
    {            
        $entries = Entries::orderBy('id', 'DESC')->paginate(15);

        return view('entries.index')
            ->with('entries', $entries);
    }

здесь я сбрасываю переменную $entries в контроллере, используя dd($entries) и вот что я получаю.

LengthAwarePaginator {#425 ▼
  #total: 215
  #lastPage: 15
  #items: Collection {#436 ▼
    #items: array:15 [▼
      0 => entries {#437 ▶}
      1 => entries {#438 ▶}
      2 => entries {#439 ▶}
      3 => entries {#440 ▶}
      4 => entries {#441 ▶}
      5 => entries {#442 ▶}
      6 => entries {#443 ▶}
      7 => entries {#444 ▶}
      8 => entries {#445 ▶}
      9 => entries {#446 ▶}
      10 => entries {#447 ▶}
      11 => entries {#448 ▶}
      12 => entries {#449 ▶}
      13 => entries {#450 ▶}
      14 => entries {#451 ▶}
    ]
  }
  #perPage: 15
  #currentPage: 1
  #path: "https://samplesite.com/entries/11"
  #query: []
  #fragment: null
  #pageName: "page"
  +onEachSide: 3
  #options: array:2 [▼
    "path" => "https://samplesite.com/entries/11"
    "pageName" => "page"
  ]
}

Проверьте это Видео Я делюсь с вами идеей

Ответы [ 4 ]

1 голос
/ 20 февраля 2020

Вы переопределяете коллекцию $entries с элементом коллекции в @forelse.

@forelse($entries as $entries)
    <tr>
        <td> {{ $entries->id }} </td>
        <td> {{ $entries->name }} </td>
    </tr>
@empty

Измените $entries на $entry:

@forelse($entries as $entry)
    <tr>
        <td> {{ $entry->id }} </td>
        <td> {{ $entry->name }} </td>
    </tr>
@empty
1 голос
/ 12 февраля 2020

Не следует указывать одно и то же имя в переменной на foreach, это может привести к конфликту между ошибками. Это может произойти из-за ошибки переменной из красноречивых результатов или из результатов в l oop.

попробуйте рефакторинг вашего кода следующим образом

@forelse($entries as $entrie)
    <tr>
        <td> {{ $entrie->id }} </td>
        <td> {{ $entrie->name }} </td>
    </tr>
@empty
<tr>
    <td>
        <p>No record found.</p>
    </td>
</tr>
@endforelse
1 голос
/ 12 февраля 2020

Убедитесь, что вы вернули точную коллекцию в своем клинке.

$users= User::paginate(15);

return view('entries', compact('users'));

и уже можете использовать эту строку в своем клинке.

{!! $entries->links() !!}

Или

{!! $users->render() !!}

, а также в вашем для каждого, замените его на

@forelse($entries as $entry)
     <tr>
         <td> {{ $entry->id }} </td>
         <td> {{ $entry->name }} </td>
     </tr>
@empty

Попробуйте изменить контроллер на это.

  public function index(Request $request)
    {            
            $entries = entries::where('form_id', '=', $id)->orderBy('id', 'DESC')->paginate(15);

            return view('entries.index')
                ->with('entries', $entries);
    }
0 голосов
/ 12 февраля 2020

Вы пробовали {{ $entries->links() }}?

обновить

в вашем контроллере, вы можете попробовать это

    $users = User::paginate(1);
    dd($users->links(), $users->links());

У вас есть то же самое ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...