Heim  >  Artikel  >  Backend-Entwicklung  >  CakePHP-Paginierung

CakePHP-Paginierung

王林
王林Original
2024-08-29 12:58:00848Durchsuche

In CakePHP haben wir verschiedene Funktionen für den Entwickler. Wenn wir zu diesem Zeitpunkt versuchen möchten, eine flexible und benutzerfreundliche Webanwendung zu entwickeln, können wir das Paginierungskonzept in das Framework integrieren. Die Anzeige einer vernünftigen Anzahl von Datensätzen pro Seite war schon immer ein grundlegender Bestandteil jeder Anwendung und bereitete den Designern oft Kopfzerbrechen. CakePHP entlastet den Designer, indem es eine schnelle und einfache Methode zum Paginieren von Informationen bietet. Eines der Haupthindernisse bei der Erstellung anpassungsfähiger und benutzerfreundlicher Webanwendungen ist die Planung einer natürlichen Benutzeroberfläche.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Was ist CakePHP-Paginierung?

Die Verbesserung eines benutzerfreundlichen Verbindungspunkts ist eines der Hauptthemen für die Webanwendungsdesigner, denn wenn der Kunde seinen Quellcode erstellt, nehmen zu diesem Zeitpunkt die Länge des Codes und die Komplexität zu. Ebenso war es schwierig, Hunderte oder Tausende von Datensätzen auf einer einzelnen Seite zu verwalten. Darüber hinaus bietet es die Möglichkeit, die Feinheiten auf eine einzelne Seite zu bringen, wodurch die Webanwendung ihre unerschütterliche Qualität und Kundenzufriedenheit erfährt. In diesem Sinne bieten die CakePHP-Entwickler eine Paginierungsfunktion, um die vielen Datensätze auf einer einzelnen Seite zu umgehen. Zahlreiche Anwendungen nehmen oft schnell an Größe und Komplexität zu, und Architekten und Softwareentwickler stellen fest, dass sie sich nicht an die Anzeige von Hunderten oder Tausenden von Datensätzen gewöhnen können.

Um die Bewegungsaufzeichnung des Kunden auf einer einzelnen Seite anzuzeigen, wird die Länge der Aufzeichnungen zu diesem Zeitpunkt übermäßig verlängert, weshalb wir mit diesen Problemen konfrontiert sind

Der Kunde muss verschiedene Zeiten betrachten, um die Daten zu sehen.

Mit kompakten Geräten wie Mobiltelefonen, Tablets usw. wird es nicht schwierig sein, die Website zu durchsuchen
Dadurch wird die Ausführung der Webanwendung beeinträchtigt.

Unter diesen Umständen stellt CakePHP eine ideale Paginierungsstrategie dar.

Paginierungsstrategie für CakePHP: Sie isoliert alle Datensätze in gleichwertige Teile und zeigt dem Kunden einen einzelnen Datensatz entsprechend den Anforderungen der Anwendung an.

Modell: Angenommen, wir haben 200 Datensätze auf jeder Seite und müssen nur 20 Datensätze anzeigen. Wie bei der einfachen Mathematik, um die vollständigen Blätter zu erhalten, ist es 200/20 = 10. Aus diesem Grund möchten wir dem Kunden wirklich die Möglichkeit geben, die Feinheiten auf jeder Seite entweder auf einem kleinen Bildschirm wie einem vielseitigen Gerät oder einem Arbeitsbereichs-Gadget zu sehen.

Wie konfiguriere ich die CakePHP-Paginierung?

Jetzt sehen wir uns an, wie wir die Paginierung in CakePHP wie folgt konfigurieren können.

Manchmal möchten wir die Paginierung in CakePHP wirklich mithilfe einer herkömmlichen SQL-Abfrage durchführen. Anschließend geht der von CakePHP vordefinierte Paginierungsnutzen verloren. Benutzerdefinierte Paginierung in CakePHP

Wir können eine Paginierungsstrategie im Modell oder Verhalten durchführen, wenn wir Standard-SQL-Abfragen in CakePHP verwenden. Sie müssen lediglich sicherstellen, dass das Ergebnis nicht mit zentralen Modelltechniken oder einem benutzerdefinierten Locator erzielt werden kann, bevor Sie eine benutzerdefinierte Paginierung der Fragen durchführen. Allerdings können wir nicht einfach die Standard-Paginierung für die benutzerdefinierten Fragen verwenden, wir müssen die Paginierungsfunktionen in der Form oder im Verhalten aufheben.

Um unsere eigene Strategie/Rationale zu nutzen, um die CakePHP-Paginierung im Modell zu ersetzen, möchten wir unbedingt zwei Kapazitäten hinzufügen: paginate () und paginateCount().

Um eine Menge umfangreicher Informationen anzuzeigen, können wir die Paginierung verwenden. Auf diese Komponente kann mit PHP 4 zugegriffen werden, was äußerst einfach zu verwenden ist.

Im folgenden Screenshot sehen wir mehrere Datenbankeinträge mit unterschiedlichen Werten wie folgt.

Jetzt müssen wir die Datensätze auf einer einzigen Seite mit wenigen Einträgen anzeigen, damit wir die Paginierung verwenden können. Aus diesem Grund müssen wir zunächst die Datei „routes.php“ wie folgt konfigurieren.

<?php
use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true,
]));
$builder->applyMiddleware('csrf');
//$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
$builder->connect('posts',['controller'=>'Posts','action'=>'index']);
$builder->fallbacks();
});

Jetzt müssen wir die Datei „controller.php“ erstellen und den folgenden Code wie folgt schreiben.

<?php
namespace App\Controller;
use App\Controller\AppController;
class PostsController extends AppController {
public function index(){
$this->loadModel('rounds);
$articles = $this->rounds->find('all')->order(['rounds.id ASC']);
$this->set('rounds', $this->paginate($rounds, ['limit'=> '4']));
}
}
?>

Erklärung

In der obigen Datei schreiben wir die Logik der Anzeigedatensätze. Hier versuchen wir, 4 Datensätze auf einer einzelnen Seite anzuzeigen.

Jetzt müssen wir ein Verzeichnis erstellen und unter diesem Verzeichnis eine neue index.php-Datei erstellen und den folgenden Code wie folgt schreiben.

<div>
<?php foreach ($rounds as $key=>$rounds) {?>
<a href="#">
<div>
<p><?= $rounds->title ?> </p>
<p><?= $rounds->details ?></p>
</div>
</a>
<br/>
<?php
}
?>
<ul class="pagination">
<?= $this->Paginator->prev("<<") ?>
<?= $this->Paginator->numbers() ?>
<?= $this->Paginator->next(">>") ?>
</ul>
</div>

Führen Sie nun den obigen Code in localhost aus. Das Endergebnis der obigen Implementierung haben wir anhand des folgenden Screenshots wie folgt veranschaulicht.

Using Controller Cakephp pagination

In the regulator, we start by characterizing the default question conditions pagination will use in the $paginate regulator variable. These circumstances serve as the reason for your pagination questions. They are increased by the sort, direction, limit, and page boundaries passed in from the URL. It is critical to note that the request key should be characterized in an exhibit structure like beneath:

class RoundController extends AppController
{
public $paginate = [
'limit' => 20,
'order' => [
'Round.title' => 'Desc'
]
];
public function initialize()
{
parent::initialize();
$this->loadComponent('Paginator');
}
}

In this code, we can include different options that are supported by the find () method as per our requirements.

class RoundController extends AppController
{
public $paginate = [
'fields' => ['Rounds.id', 'Rounds.created'],
'limit' => 20,
'order' => [
'Rounds.title' => 'Desc'
]
];
public function initialize()
{
parent::initialize();
$this->loadComponent('Paginator');
}
}

While you can pass the vast majority of the question choices from the paginate property it is often cleaner and more straightforward to wrap up your pagination choices into a Custom Finder Method. You can characterize the locater pagination utilizing finder choice.

Conclusion

From the above article, we have taken in the essential idea of the CakePHP pagination and we also see the representation and examples. From this article, we learned how and when we use the CakePHP pagination.

Das obige ist der detaillierte Inhalt vonCakePHP-Paginierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Cron in PHPNächster Artikel:Cron in PHP