как использовать pangination и sortByDesc fuction в laravel? - PullRequest
0 голосов
/ 12 мая 2018

я пытался использовать нумерацию страниц в моем представлении laravel, у меня возникла эта проблема

Метод Illuminate \ Database \ Eloquent \ Collection :: links не существует.(Вид: C: \ wamp \ www \ project \ resources \ views \ demmande \ demmandes.blade.php)

вот моя функция контроллера

public function ViewDemmandes(){
    $listdemmande=Demmande::paginate(10)->sortByDesc('created_at');
    $listvillee=Ville::all();
    $listcategorie=Categorie::all();

    $villes = $listvillee;
    $demmande = $listdemmande;
    $categorie = $listcategorie;

    return view("demmande.demmandes",compact('villes','categorie','demmande'));
}

но когда яУдалите функцию sortByDesc следующим образом

public function ViewDemmandes(){
    $listdemmande=Demmande::paginate(3);
    $listvillee=Ville::all();
    $listcategorie=Categorie::all();

    $villes = $listvillee;
    $demmande = $listdemmande;
    $categorie = $listcategorie;

    return view("demmande.demmandes",compact('villes','categorie','demmande'));
}

она работает нормально, пожалуйста, вы можете помочь мне решить эту проблему

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

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

$ listdemmande = Demmande :: orderBy ('creation_at', 'desc') -> paginate (10);

А также не забудьте добавить в режиме лезвия, чтобы добавить это ...

После foreach добавить к этому

{{$ listdemmande-> ссылки ()}}

Ошибка ваших ссылок решена.

0 голосов
/ 12 мая 2018

->paginate(10) вернет экземпляр LengthAwarePaginator . Который реализует все методы, которые есть у Collection (->sortByDesc() является одним из них). Но вызов метода коллекции вернет базовую коллекцию, а не экземпляр paginator.

Таким образом, в вашем случае вы переопределяете paginator с коллекцией, возвращаемой с ->sortByDesc().

Сортировка с использованием SQL вместо коллекции:

$listdemmande = Demmande::orderBy('created_at', 'DESC')->paginate(10);
// Or using `->latest()` shorthand:
// $listdemmande = Demmande::latest()->paginate(10);

Если есть причина, по которой вы хотите выполнить сортировку после извлечения запроса, вы можете переопределить только лежащую в основе коллекцию страниц:

$listdemmande = Demmande::paginate(10);
$listdemmande->setCollection($listdemmande->sortByDesc('created_at'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...