Apprenez facilement le didacticiel vidéo sur les formulaires de Laravel

黄舟
Libérer: 2023-03-15 16:16:01
original
1273 Les gens l'ont consulté

Le framework Laravel est l'un des frameworks de développement PHP les plus populaires au monde. Ces dernières années, Laravel a rapidement occupé la première place parmi les frameworks de développement PHP en raison de sa puissance, de sa sécurité, de son élégance et d'autres fonctionnalités. Désormais, le framework Laravel est devenu le framework préféré des grandes sociétés Internet et des assiégés de PHP.

Apprenez facilement le didacticiel vidéo sur les formulaires de Laravel

Adresse de lecture du cours : http://www.php.cn/course/395.html

Le Style d'enseignement de l'enseignant :

Les cours de l'enseignant sont simples et approfondis, de structure claire, analysés couche par couche, imbriqués, rigoureux dans l'argumentation et rigoureux dans la structure. Il utilise le pouvoir logique de la pensée. pour attirer l'attention des étudiants et contrôler le processus d'enseignement en classe. Les compétences pédagogiques sont pleines d'esprit. Diverses méthodes et techniques d'enseignement sont facilement disponibles et peuvent être utilisées librement et de manière appropriée sans aucune trace de polissage.

Le point le plus difficile dans cette vidéo est la liste de formulaires Laravel et l'implémentation de la pagination :

Il y a une telle situation pendant le processus de développement, vous demandez à l'API Java de obtenir des informations, car Il y a beaucoup d'informations et doivent être affichées dans des pages. Laravel fournit officiellement une méthode simple, paginate($perPage), mais cette méthode s'applique uniquement au générateur de modèles et de requêtes.
Aujourd'hui, parlons de la façon d'obtenir le même effet que la méthode paginate avec un tableau.

Afficher le code source de la méthode paginate

#vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:480
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null){
        $query = $this->toBase();        
$total = $query->getCountForPagination();        
$this->forPage(            
$page = $page ?: Paginator::resolveCurrentPage($pageName),            
$perPage = $perPage ?: $this->model->getPerPage()
        );        
return new LengthAwarePaginator($this->get($columns), $total, $perPage, $page, [           
 'path' => Paginator::resolveCurrentPath(),            
 'pageName' => $pageName,
        ]);
}
Copier après la connexion

Comme vous pouvez le voir ci-dessus, la clé de la pagination réside dans lengthAwarePaginator.

Méthode de construction de LengthAwarePaginator.

public function __construct($items, $total, $perPage, $currentPage = null, array $options = []){
        foreach ($options as $key => $value) {            
$this->{$key} = $value;
        }        
$this->total = $total;        
$this->perPage = $perPage;        
$this->lastPage = (int) ceil($total / $perPage);        
$this->path = $this->path != '/' ? rtrim($this->path, '/') : $this->path;        
$this->currentPage = $this->setCurrentPage($currentPage, $this->lastPage);        
$this->items = $items instanceof Collection ? $items : Collection::make($items);
}
Copier après la connexion

En fait, c'est déjà très clair. Si le tableau à paginer est

[
    ['username'=>'zhangsan', 'age'=>26],
    ['username'=>'lisi', 'age'=>23],
    ['username'=>'wangwu', 'age'=>62],
    ['username'=>'zhaoliu', 'age'=>46],
    ['username'=>'wangmazi', 'age'=>25],
    ['username'=>'lanzi', 'age'=>24],
    ['username'=>'pangzi', 'age'=>21],
]
Copier après la connexion

, il y a 7 données au total, et chaque page en affichera 3. morceaux, avec un total de 3 pages

use Illuminate\Pagination\LengthAwarePaginator;use Illuminate\Pagination\Paginator;use Illuminate\Http\Request;
# 仅做演示 
#function userList(Request $request) {
    $users = [
        ['username'=>'zhangsan', 'age'=>26],
        ['username'=>'lisi', 'age'=>23],
        ['username'=>'wangwu', 'age'=>62],
        ['username'=>'zhaoliu', 'age'=>46],
        ['username'=>'wangmazi', 'age'=>25],
        ['username'=>'lanzi', 'age'=>24],
        ['username'=>'pangzi', 'age'=>21]
    ];    $perPage = 3;    if ($request->has('page')) {            
$current_page = $request->input('page');            
$current_page = $current_page <= 0 ? 1 :$current_page;
    } else {            
$current_page = 1;
    }    
$item = array_slice($users, ($current_page-1)*$perPage, $perPage); //注释1
    $total = count($users);    
$paginator =new LengthAwarePaginator($item, $total, $perPage, $currentPage, [            
&#39;path&#39; => Paginator::resolveCurrentPath(),  //注释2
            &#39;pageName&#39; => &#39;page&#39;,
    ]);    
$userlist = $paginator->toArray()[&#39;data&#39;];    
return view(&#39;userlist&#39;, compact(&#39;userlist&#39;, &#39;paginator&#39;));
}
Copier après la connexion

Le code ci-dessus se concentre sur $item Si le commentaire 1 n'est pas traité, les 7 éléments de données seront obtenus.

La remarque 2 consiste à définir une adresse URL à paginer. Il peut également être défini manuellement via $paginator ->setPath('path').

La connexion de pagination dans la page est également appelée de la même manière {{ $paginator->render() }}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal