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;
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'];
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; } }
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');
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'];
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
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!