Maison  >  Article  >  cadre php  >  Cet article explique comment ajouter des attributs personnalisés aux résultats paginés dans Laravel.

Cet article explique comment ajouter des attributs personnalisés aux résultats paginés dans Laravel.

PHPz
PHPzoriginal
2023-04-03 17:55:08783parcourir

Dans Laravel, la pagination est une fonction très couramment utilisée. Laravel fournit une classe de pagination pratique qui peut facilement implémenter la pagination. Cependant, dans certains cas, nous devrons peut-être ajouter davantage d'attributs aux résultats paginés, tels que le nombre total d'enregistrements ou de mots-clés de recherche. Dans cet article, nous explorerons comment ajouter des propriétés personnalisées pour les résultats paginés dans Laravel.

Tout d’abord, jetons un coup d’œil rapide à la fonctionnalité de pagination dans Laravel. Nous pouvons utiliser la méthode paginate() pour obtenir des données paginées de la base de données, par exemple : paginate()方法从数据库中获取分页数据,例如:

$users = DB::table('users')->paginate(10);

这条代码将从名为users的数据库表中获取10条记录,并将它们组织成一页,每页10条记录。现在,我们可以在视图中将这些记录渲染出来,并在页码下方显示分页链接。

但是,有时我们需要向分页结果添加更多的属性,例如总记录数。为了实现这一点,我们可以使用Laravel的查询构建器。考虑以下代码:

$users = DB::table('users')->select(\DB::raw('count(*) as total'))->paginate(10);

在这个例子中,我们向查询构建器中添加了一个select子句,它将返回一个名为total的列,它的值是查询结果的总行数。现在,我们可以在视图中像这样访问这个属性:

{{ $users->total }}

同样,我们可以使用查询构建器添加其他属性。例如,如果我们想在分页结果中添加搜索关键字,我们可以按以下方式修改上述示例代码:

$keyword = 'John';
$users = DB::table('users')
            ->select(\DB::raw('count(*) as total'))
            ->where('name', 'like', "%{$keyword}%")
            ->paginate(10);
$users->keyword = $keyword;

在这个例子中,我们添加了另一个查询构建器函数where,它将在结果中只返回包含关键字John的名称的行。然后,我们将关键字存储在$users对象的自定义属性keyword中,使我们可以在视图中访问它:

{{ $users->keyword }}

通过这种方式,我们可以向分页结果添加任意数量和类型的属性。注意,我们可以通过访问分页结果对象的公共属性来访问这些自定义属性。

在本文中,我们讨论了如何在Laravel中为分页结果添加自定义属性。我们使用查询构建器中的selectwhere函数实现了这一点。这些方法不仅适用于paginate()rrreee

Ce code obtiendra 10 enregistrements de la table de la base de données nommées users, et organisez-les en pages avec 10 enregistrements par page. Nous pouvons maintenant restituer ces enregistrements dans une vue et afficher des liens de pagination sous les numéros de page.

Cependant, nous devons parfois ajouter plus d'attributs aux résultats paginés, comme le nombre total d'enregistrements. Pour y parvenir, nous pouvons utiliser le générateur de requêtes de Laravel. Considérons le code suivant : 🎜rrreee🎜 Dans cet exemple, nous avons ajouté une clause select au générateur de requêtes qui renverra une colonne appelée total dont la valeur est le nombre total de lignes dans les résultats de la requête. Maintenant, nous pouvons accéder à cette propriété dans la vue comme ceci : 🎜rrreee🎜 De même, nous pouvons ajouter d'autres propriétés à l'aide du générateur de requêtes. Par exemple, si nous souhaitons ajouter des mots-clés de recherche dans les résultats paginés, nous pouvons modifier l'exemple de code ci-dessus comme suit : 🎜rrreee🎜 Dans cet exemple, nous avons ajouté une autre fonction de création de requêtes where, elle sera renvoie uniquement les lignes dans les résultats qui contiennent le nom du mot-clé John. Nous stockons ensuite le mot-clé dans une propriété personnalisée keyword de l'objet $users, nous permettant d'y accéder dans la vue : 🎜rrreee🎜De cette façon, nous pouvons ajouter n'importe quel nombre et type de propriétés aux résultats paginés. Notez que nous pouvons accéder à ces propriétés personnalisées en accédant aux propriétés publiques de l'objet de résultats paginés. 🎜🎜Dans cet article, nous avons expliqué comment ajouter des propriétés personnalisées pour les résultats paginés dans Laravel. Nous y parvenons en utilisant les fonctions select et where dans le générateur de requêtes. Ces méthodes fonctionnent non seulement avec la fonction paginate(), mais également avec d'autres fonctions du générateur de requêtes. 🎜🎜J'espère que cet article vous sera utile ! 🎜

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!

Déclaration:
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