Разбиение на страницы в Laravel 5.7

Я работаю с существующей базой данных, в которой есть таблица с именем pnc_members

Поскольку laravel неправильно интерпретирует это имя, я поместил

protected $table = 'pnc_members';

в модели pnc_members.php, чтобы решить эту проблему.

В моем контроллере я получаю данные таблицы с

$members = pnc_members::paginate(10);

тем не мение; Я получаю сообщение об ошибке members.blade.php, когда вставляю ссылку для разбивки на страницы

{{ $members->links() }}

Ошибка ErrorException (E_ERROR) Вызов неопределенного метода App \ Models \ pnc_members :: links () (View: C: \ wamp64 \ www \ pnc-system \ resources \ views \ members.blade.php) Предыдущие исключения Вызов неопределенного метод App \ Models \ pnc_members :: links ()

Похоже, это сбивает $members с директивой защиты таблицы!

Я попытался изменить переменную на другое имя, используемое в get (например, $ members_pg), но это все еще не работает!

Любая помощь будет высоко ценится.


person user3199488    schedule 10.12.2019    source источник
comment
пожалуйста, опубликуйте весь код вашего действия.   -  person TsaiKoga    schedule 10.12.2019


Ответы (2)


Я понял!

Я добавил строку в контроллер $ pages = $ members-> links ();, а затем использовал dd ($ pages);, чтобы посмотреть, что было записано и что выглядело хорошо.

Возвращенное представление добавляет массив с переменной $ pages, которая должна быть передана в лезвие следующим образом: return view ('members', ['pages' => $ pages]) -> with ('members', $ members) ;

Затем я вставляю {{$ pages} в свой клинок, и он отлично работает.

Почему это не работает по-другому, я действительно не знаю, но, по крайней мере, я решил это.

Спасибо//

person user3199488    schedule 10.12.2019

Если ваша таблица - pnc_members, имя вашей модели должно быть PncMember.

Итак, прежде всего убедитесь, что у вас есть эта модель, а затем в своем контроллере вы можете использовать

$members = PncMember::paginate(5);
person Ashutosh Kamble    schedule 10.12.2019
comment
Это не сработало, имя таблицы заканчивается на 's', и если я его изменю, я не могу найти контроллер. Мой обходной путь, когда я фиксирую ссылку в контроллере как переменную, которую я передаю блейду, работает для меня. У меня такая же проблема с другими лезвиями, и просто для запуска у всех них имена таблиц заканчиваются на 's'. Когда у меня будет больше времени, я попробую что-то другое, но сейчас меня устраивает работа, которая работает во всех моих лезвиях. Спасибо за твою помощь// - person user3199488; 11.12.2019