La Pagination ne corrigent pas afficher les numéros de page Codeigniter
Ma fonction de contrôleur de
function test($start_from = 0)
{
$this->load->library('pagination');
$data = array();
$per_page = 3;
$total = $this->activity_model->count_by();
$config['base_url'] = base_url() . 'test';
$config['total_rows'] = $total;
$config['per_page'] = $per_page;
$config['uri_segment'] = 2;
$config['num_links'] = 2;
$config['use_page_numbers'] = TRUE;
$data['follow'] = $this->activity_model->get($per_page, $start_from);
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();
$this->load->view('front_end/test' ,$data);
}
mon itinéraire :
$route['test'] = "user_activity/test";
$route['test/(:any)'] = "user_activity/test/$1";
modèle :
function get($limit,$start_from)
{
$sql = "SELECT * FROM user_follow LIMIT $start_from, $limit";
$query = $this->db->query($sql);
return $query->result_array();
}
Problème est que j'ai la pagination 1,2,3,4,5.... et à chaque page j'affiche 3 articles. Je veux le faire dans les url à afficher mes numéros de page 1,2,3,4,5
Lorsque je clique sur le deuxième url de la page de spectacle 3
Lorsque je clique sur le troisième url de la page de spectacle 6 et ainsi de suite +3
est-il possible, j'ai passer des heures à regarder les avis sur internet mais rien de ce que je comprends [code]$config['use_page_numbers'] = TRUE;[/code] faire ce dont j'ai besoin, mais dans mon cas, il ne fonctionnent toujours pas.
Peut-être vous pouvez les conseils de bibliothèque ?
Vous devez vous connecter pour publier un commentaire.
Apportez les modifications suivantes dans la Pagination de la classe (/system/libraries/Pagination.php) afin qu'il utilise les numéros de page au lieu de décalages.
VIEUX (lignes 146-153):
NOUVEAU:
Ajouter ‘d'autre’ option si-déclaration à faire assurer par défaut est; page = 1.
VIEUX (ligne 175):
NOUVEAU:
Simplement en commentaire cette ligne, donc la page actuelle obéit contrôleur/URI.
VIEUX (ligne 206):
NOUVEAU:
Page précédente doit toujours être à jour de la page soustrait par 1.
VIEUX (ligne 230):
NOUVEAU:
Uri manque la pagination doit être considérée comme la page 1.
VIEUX (ligne 238-247):
NOUVEAU:
Page Url de l'utilisation des numéros de page et de ne pas les décalages.
VIEUX (la ligne 256):
NOUVEAU:
Page suivante doit toujours être égale à la somme de la page en cours et 1.
VIEUX (ligne 262):
NOUVEAU:
Dernière page doit être le nombre total de pages.
Remplacer toutes les anciennes lignes avec de nouvelles lignes. Assurez-vous de faire une sauvegarde du fichier avant de le modifier.
Espère que cela aide 🙂
EDIT:
Vous devez mettre à jour votre fonction de contrôleur de test comme :
Ici, j'ai ajouté une nouvelle variable $départ qui est
$per_page * ($start_from-1)
. Maintenant, ce montant de commencer l'argument de modèle.Ce que cela à faire est de multiplier le nombre d'éléments par page (numéro de page en cours -1 ) .Cela signifie que si vos articles par page est
10
et vous êtes sur la deuxième page de la$start = 10 *(2-1)
qui donne10
. Si votre résultat va commencer à partir de 10,20 et donc unEspère que cela aide 🙂
J'ai réussi à le faire sans modification de la classe. Le meilleur moyen est de faire une copie de la pagination de la classe, faites vos modifications et l'utiliser. De cette façon, si vous mettez à jour CI, vous ne perdrez pas la modification. Voici ma solution sans modifier la classe.
D'abord je tiens à dire qu'en utilisant uniquement l'option de configuration
$config['use_page_numbers'] = TRUE
feront aussi l'affaire, mais pas entièrement. Les choses que j'ai trouvé ne fonctionne pas en utilisant uniquement cette option sont les suivants:si vous essayez de modifier la barre d'url des pages manuellement, il les traite comme un décalage pas comme les pages et également si vous essayez d'aller retour à partir de la page 2 à la page 1 à l'aide de la "prev" lien il traite également le numéro de la page comme un décalage.
Le code:
De cette façon
page = false (ma/url) ou (ma/url/page) - en gros, si le 4ème uri segment est faux,
page = 0 (ma/url/page/0),
page = 1 (ma/url/page/1)
seront tous afficher la première page et puis les autres liens va être fonctionne bien. Je suis également à la validation de la page e.g - si quelqu'un veut entrer (ma/url/page/2323), cela provoquera une erreur et dans le modèle, vous devez vérifier si le résultat est faux et si c'est le contrôleur doit afficher une page d'erreur ou quelque chose. Espérons que cette aide.
Vous pouvez éviter les erreurs php, si quelqu'un entrer manuellement le numéro de page à partir de l'URL:
par exemple, mon/url/page/786
votre résultat pourrait ne pas avoir rien à afficher pour la requête 786 , par défaut, il vous montrera erreur php..pour éviter cela, vous pouvez utiliser:
espère que cela aide...
pour la requête tweetez-moi sur twitter @sufiyantech