Heim > PHP-Framework > Laravel > Hauptteil

Teilen Sie einen Leitfaden zum Schreiben von Vorschlägen in Laravel

藏色散人
Freigeben: 2021-05-08 08:58:22
nach vorne
1728 Leute haben es durchsucht

Die LaravelTutorial-Kolumne bietet Ihnen eine Anleitung zum Schreiben von Vorschlägen in Laravel. Ich hoffe, dass sie Freunden, die sie benötigen, hilfreich sein wird!

Laravel ist ein elegantes Framework, das auch viele flexible und magische Schreibmethoden bietet. Doch je flexibler es ist, desto kleiner kann es in einigen Punkten zu kleineren Problemen kommen.

Das Folgende ist eine Liste von Schreibmethoden, die Laravel nicht empfiehlt, nur zur Diskussion und Referenz. Wenn möglich, teilen Sie uns Ihre Meinung bitte im Kommentarbereich mit.

Anforderungsproblem

Anforderungsparameter können über dynamische Attribute wie die folgende Schreibweise abgerufen werden:

$name = $request->name;
Nach dem Login kopieren

Diese Schreibmethode wird nicht empfohlen, denn wenn der Attributname ein Attribut der ursprünglichen Klasse wie Abfrage oder Inhalt ist, Es werden unerwartete Ergebnisse auftreten. Wirkung. Wenn Sie sich nicht alle Schlüsselwörter dieses Typs merken (selbst wenn Sie sich alle Attribute merken, können Sie nicht garantieren, dass in der nächsten Version neue Attribute hinzugefügt werden), sonst werden Sie früher oder später auf diese Grube stoßen. Es wird nicht empfohlen, die folgende Methode zu verwenden:

// 可以用这种方式
$name = $request->input('name');
// 或用这种方式
$input = $request->all();
$name = $input['name'];
Nach dem Login kopieren

Zusammenfassung: Verwenden Sie nicht das dynamische Anforderungsattribut.

Model appends

class User extends Model
{
  protected $appends = ['is_adult'];
  public function getIsAdultAttribute()
  {
      return $this->attribute['age'] > 18;
  }
}
Nach dem Login kopieren

getXxxAttribute ist eine sehr nützliche Funktion, aber wenn es automatisch an das Modell angehängt wird, verursacht es viele Probleme, wenn Sie beispielsweise das angehängte Feld auswählen, wenn kein Altersfeld vorhanden ist wird trotzdem für Sie hinzugefügt, was manchmal zu großen Problemen führt. Es wird empfohlen, das Attribut $append nicht zu verwenden. Laden Sie diese Eigenschaft bei Bedarf auf die Controller-Ebene.

// model
class User extends Model
{
  public function getIsAdultAttribute()
  {
      return $this->attribute['age'] > 18;
  }
}
// controller
$user = User::first();
$user->append('is_adult');
Nach dem Login kopieren

Zusammenfassung: Verwenden Sie keine Modellanhänge.

Dynamische Attribute des Modells

// 第1种写法
$user = User::first();
// ?? 此动态属性如果是表字段名称是如 exists 等就会出问题。
$name = $user->name;
// 第2种写法更安全
$user = User::first()->toArray();
$name = $user['name'];
Nach dem Login kopieren

Modell verfügt auch über dynamische Attribute bei der Verwendung von Objekten, was ebenfalls zu Konfliktproblemen führt (im Allgemeinen ist es unwahrscheinlich, dass sie ausgelöst werden), aber die Schlüsselwörter sollten möglichst nicht in den Feldern der Datentabelle erscheinen. (Obwohl die zweite Schreibweise sicherer ist, glaube ich, dass mehr Menschen die erste Schreibweise bevorzugen. Wir können die folgenden Schlüsselwörter in Datenbankfeldern einfach vermeiden. Ich verwende auch gerne die erste Schreibweise.)

// /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php 
exists,
incrementing
timestamps
wasRecentlyCreated
Nach dem Login kopieren

Dieser Artikel wird von Zeit zu Zeit veröffentlicht werden. Ich hoffe, dass Leute, die Laravel verwenden, Ihre Nutzungsvorschläge teilen können.

Das obige ist der detaillierte Inhalt vonTeilen Sie einen Leitfaden zum Schreiben von Vorschlägen in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
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