Maison > cadre php > Laravel > le corps du texte

Comment spécifier des champs dans Laravel

PHPz
Libérer: 2023-04-12 09:50:39
original
1074 Les gens l'ont consulté

Laravel est un excellent framework d'application Web dont la structure flexible et la richesse des fonctionnalités en font le premier choix de nombreux développeurs. Dans Laravel, spécifier des champs signifie sélectionner uniquement certains champs, pas tous les champs, lors de l'exploitation de la base de données. Ceci est utile dans de nombreuses situations, par exemple : si vous ne vous souciez que de certaines données de la table et ne souhaitez pas interroger toutes les données, ou si les résultats de la requête sont volumineux et que les performances doivent être améliorées.

Dans cet article, nous présenterons comment spécifier des champs dans Laravel, vous permettant d'exploiter la base de données de manière plus flexible et d'améliorer les performances de votre application.

  1. Utilisez la méthode select() pour spécifier les champs
select()方法指定字段

Laravel的查询构造器提供了一个select()方法,可用于指定要选择的字段。该方法接受一个或多个参数,参数可以是一个字符串,包含要选择的字段名称的逗号分隔列表,也可以是多个字符串,每个字符串表示一个要选择的字段。以下是使用select()方法指定字段的示例代码:

$users = DB::table('users')->select('id', 'name', 'email')->get();
Copier après la connexion

在上面的示例中,我们在select()方法中传递了'id', 'name', 'email'参数,表示只选择表中的这三个字段。get()方法用于执行查询并返回查询结果。

  1. 使用模型的$fillable属性

如果您使用的是Laravel的模型(Model),则可以使用模型的$fillable属性来指定要允许进行批量赋值的字段。这样,当您调用模型的create()update()方法时,只有在$fillable属性中指定的字段才会被赋值。以下是使用$fillable属性指定字段的示例代码:

class User extends Model
{
    protected $fillable = ['name', 'email', 'password'];
}
Copier après la connexion

在上面的示例中,我们使用$fillable属性指定了三个字段:nameemailpassword。如果您调用模型的create()方法并传递这三个字段的值,这些值将自动保存到数据库。

  1. 使用模型的$guarded属性

$fillable属性相反的是,Laravel的模型还提供了一个名为$guarded的属性,可以用于指定不允许通过批量赋值进行更改的字段。如果您指定了 $guarded 属性,则在调用模型的 create()update() 方法进行批量赋值时,不包含 $guarded 属性中指定的字段。以下是使用 $guarded 属性指定字段的示例代码:

class User extends Model
{
    protected $guarded = ['id', 'created_at', 'updated_at'];
}
Copier après la connexion

在这个例子中,我们使用 $guarded 属性指定了 idcreated_atupdated_at 字段,这些字段在进行批量赋值时将被排除。

  1. 使用pluck()方法指定单个字段

如果您只需要查询表中单个字段的值,可以使用查询构建器的pluck()方法。该方法接受一个参数,参数表示您要查询的字段名称。以下是使用pluck()方法指定单个字段的示例代码:

$name = DB::table('users')->where('id', 1)->pluck('name');
Copier après la connexion

在上面的示例中,我们使用where()方法过滤出id等于1的记录,并使用pluck()方法选择nameLe générateur de requêtes de Laravel fournit une méthode select() qui peut être utilisée pour spécifier les champs souhaités Champs sélectionnés. Cette méthode accepte un ou plusieurs paramètres, qui peuvent être une chaîne contenant une liste de noms de champs à sélectionner séparés par des virgules, ou plusieurs chaînes, chaque chaîne représentant un champ à sélectionner. Vous trouverez ci-dessous un exemple de code pour spécifier les champs à l'aide de la méthode select() :

rrreee

Dans l'exemple ci-dessus, nous avons transmis 'id', 'name', ' dans l'e-mail de la méthode <code>select() 'Paramètre, indiquant que seuls ces trois champs de la table sont sélectionnés. La méthode get() est utilisée pour exécuter des requêtes et renvoyer les résultats des requêtes.

    Utilisez l'attribut $fillable du modèle

Si vous utilisez le modèle de Laravel (Model), vous pouvez utiliser le du modèle Attribut $fillable pour spécifier les champs pour autoriser l'affectation groupée. De cette façon, lorsque vous appelez la méthode create() ou update() du modèle, seuls les champs spécifiés dans l'attribut $fillable seront Assignation. . Voici l'exemple de code pour spécifier les champs à l'aide de l'attribut $fillable : 🎜rrreee🎜Dans l'exemple ci-dessus, nous avons spécifié trois champs à l'aide de l'attribut $fillable : nom , email et mot de passe. Si vous appelez la méthode create() du modèle et transmettez les valeurs de ces trois champs, ces valeurs seront automatiquement enregistrées dans la base de données. 🎜
    🎜Utilisez l'attribut $guarded du modèle
🎜À l'opposé de l'attribut $fillable, le modèle de Laravel An un attribut appelé $guarded est également fourni, qui peut être utilisé pour spécifier les champs qui ne peuvent pas être modifiés via une affectation groupée. Si vous spécifiez l'attribut $guarded, lorsque vous appelez la méthode create() ou update() du modèle pour une affectation par lots, n'incluez pas $guarded. Voici un exemple de code pour spécifier un champ à l'aide de l'attribut $guarded : 🎜rrreee🎜Dans cet exemple, nous utilisons l'attribut $guarded pour spécifier l'id , created_at et updated_at, ces champs seront exclus lors de l'affectation par lots. 🎜
    🎜Utilisez la méthode pluck() pour spécifier un seul champ
🎜Si vous n'avez besoin d'interroger que la valeur d'un seul champ dans la table, vous pouvez utiliser la création de requêtes. La méthode pluck() de l'implémenteur. Cette méthode accepte un paramètre qui représente le nom du champ que vous souhaitez interroger. Voici l'exemple de code pour spécifier un seul champ à l'aide de la méthode pluck() : 🎜rrreee🎜 Dans l'exemple ci-dessus, nous utilisons la méthode where() pour filtrer le id est égal à 1 enregistrement et utilise la méthode <code>pluck() pour sélectionner la valeur du champ name. Cette requête renvoie une chaîne contenant la valeur du champ spécifié. 🎜🎜Résumé🎜🎜Ci-dessus sont les quatre méthodes de spécification des champs dans Laravel. En utilisant les méthodes ci-dessus, vous pouvez exploiter la base de données de manière plus flexible et améliorer les performances des applications. Quelle que soit la méthode que vous choisissez, lorsque vous interrogez de grandes quantités de données, interroger uniquement les champs dont vous avez besoin est une bonne pratique et peut réduire considérablement le volume de transfert de données et le temps d'exécution des requêtes. 🎜

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!