Heim > PHP-Framework > Laravel > Hauptteil

So geben Sie Felder in Laravel an

PHPz
Freigeben: 2023-04-12 09:50:39
Original
1095 Leute haben es durchsucht

Laravel ist ein hervorragendes Webanwendungs-Framework, dessen flexible Struktur und umfangreicher Funktionsumfang es zur ersten Wahl vieler Entwickler machen. In Laravel bedeutet die Angabe von Feldern, dass beim Betrieb der Datenbank nur bestimmte Felder und nicht alle Felder ausgewählt werden. Dies ist in vielen Situationen nützlich, beispielsweise wenn Sie sich nur um einige Daten in der Tabelle kümmern und nicht alle Daten abfragen möchten, oder wenn die Abfrageergebnisse umfangreich sind und die Leistung verbessert werden muss.

In diesem Artikel stellen wir vor, wie Sie Felder in Laravel angeben, sodass Sie die Datenbank flexibler betreiben und die Leistung Ihrer Anwendung verbessern können.

  1. Verwenden Sie die Methode select(), um Felder anzugeben
select()方法指定字段

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

$users = DB::table('users')->select('id', 'name', 'email')->get();
Nach dem Login kopieren

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

  1. 使用模型的$fillable属性

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

class User extends Model
{
    protected $fillable = ['name', 'email', 'password'];
}
Nach dem Login kopieren

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

  1. 使用模型的$guarded属性

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

class User extends Model
{
    protected $guarded = ['id', 'created_at', 'updated_at'];
}
Nach dem Login kopieren

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

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

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

$name = DB::table('users')->where('id', 1)->pluck('name');
Nach dem Login kopieren

在上面的示例中,我们使用where()方法过滤出id等于1的记录,并使用pluck()方法选择nameDer Abfrage-Builder von Laravel bietet eine Methode select(), die zum Angeben verwendet werden kann die gewünschten Felder. Diese Methode akzeptiert einen oder mehrere Parameter, bei denen es sich um eine Zeichenfolge handeln kann, die eine durch Kommas getrennte Liste der auszuwählenden Feldnamen enthält, oder um mehrere Zeichenfolgen, wobei jede Zeichenfolge ein auszuwählendes Feld darstellt. Unten ist der Beispielcode zum Angeben von Feldern mit der Methode select():

rrreee

Im obigen Beispiel haben wir 'id', 'name', ' in der E-Mail der Methode <code>select() übergeben ' Parameter, der angibt, dass nur diese drei Felder in der Tabelle ausgewählt sind. Die Methode get() wird verwendet, um Abfragen auszuführen und Abfrageergebnisse zurückzugeben.

    Verwenden Sie das Attribut $fillable des Modells

Wenn Sie Laravels Modell (Model) verwenden, können Sie den des Modells verwenden $fillable-Attribut, um die Felder anzugeben, die eine Massenzuweisung ermöglichen sollen. Wenn Sie auf diese Weise die Methode create() oder update() des Modells aufrufen, werden nur die im Attribut $fillable angegebenen Felder zugewiesen . Hier ist der Beispielcode zum Angeben von Feldern mithilfe des Attributs $fillable: 🎜rrreee🎜Im obigen Beispiel haben wir drei Felder mithilfe des Attributs $fillable angegeben: Name , E-Mail und Passwort. Wenn Sie die Methode create() des Modells aufrufen und die Werte dieser drei Felder übergeben, werden diese Werte automatisch in der Datenbank gespeichert. 🎜
    🎜Verwenden Sie das Attribut $guarded des Modells
🎜Das Gegenteil des Attributs $fillable, Laravels Modell An Es wird auch ein Attribut namens $guarded bereitgestellt, mit dem Felder angegeben werden können, die nicht durch Massenzuweisung geändert werden dürfen. Wenn Sie das Attribut $guarded angeben, wenn Sie die Methode create() oder update() des Modells für die Stapelzuweisung aufrufen, schließen Sie $guarded angegeben ist. Im Folgenden finden Sie einen Beispielcode für die Angabe eines Felds mithilfe des Attributs $guarded: 🎜rrreee🎜In diesem Beispiel verwenden wir das Attribut $guarded, um die id anzugeben , created_at und updated_at Felder, diese Felder werden bei der Massenzuweisung ausgeschlossen. 🎜
    🎜Verwenden Sie die Methode pluck(), um ein einzelnes Feld anzugeben
🎜Wenn Sie nur den Wert eines einzelnen Felds abfragen müssen In der Tabelle können Sie die Abfrageerstellungsmethode pluck() des Implementierers verwenden. Diese Methode akzeptiert einen Parameter, der den Namen des Feldes darstellt, das Sie abfragen möchten. Hier ist der Beispielcode zum Angeben eines einzelnen Felds mit der Methode pluck(): 🎜rrreee🎜 Im obigen Beispiel verwenden wir die Methode where(), um das herauszufiltern id entspricht 1 Datensatz und verwendet die Methode <code>pluck(), um den Wert des Felds name auszuwählen. Diese Abfrage gibt eine Zeichenfolge zurück, die den Wert des angegebenen Felds enthält. 🎜🎜Zusammenfassung🎜🎜Die oben genannten sind die vier Methoden zum Spezifizieren von Feldern in Laravel. Mit den oben genannten Methoden können Sie die Datenbank flexibler betreiben und die Anwendungsleistung verbessern. Unabhängig davon, für welche Methode Sie sich entscheiden, empfiehlt es sich bei der Abfrage großer Datenmengen, nur die Felder abzufragen, die Sie benötigen, und kann das Datenübertragungsvolumen und die Ausführungszeit der Abfrage erheblich reduzieren. 🎜

Das obige ist der detaillierte Inhalt vonSo geben Sie Felder in Laravel an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage