Heim >PHP-Framework >Laravel >Laravel Eloquent Skill Sharing (Beispielerklärung)
Der Inhalt dieses Artikels befasst sich mit dem Teilen von Laravel Eloquent-Fähigkeiten (Beispielerklärung). Ich hoffe, dass er für Sie hilfreich ist.
Laravel ist ein funktionsreiches Framework. Allerdings werden Sie nicht alle verfügbaren Funktionen in der offiziellen Dokumentation finden können. Hier sind einige Funktionen, die Sie vielleicht noch nicht kennen.
1. Holen Sie sich die Originalattribute
Wenn Sie einen Eloquent-Modelldatensatz ändern, können Sie die Originalattribute des Datensatzes abrufen, indem Sie die Methode getOriginal() aufrufen
$user = App\User::first(); $user->name; //John $user->name = "Peter"; //Peter $user->getOriginal('name'); //John $user->getOriginal(); //原始 $user 记录
2. Überprüfen Sie, ob das Modell geändert wurde
Verwenden Sie die Methode isDirty(), um festzustellen, ob das Modell oder ein bestimmtes Attribut geändert wurde
$user = App\User::first(); $user->isDirty(); //false $user->name = "Peter"; $user->isDirty(); //true
Sie können auch überprüfen, ob das angegebene Attribut geändert wurde.
$user->isDirty('name'); //true $user->isDirty('age'); //false
3. Rufen Sie die geänderten Attribute ab
Verwenden Sie getChanges(), um die geänderten Attribute abzurufen
$user->getChanges() //[ "name" => "Peter", ]Hinweis: Nur wenn Sie syncChanges() zum Speichern verwenden modellieren oder synchronisieren Es wird nur wirksam, wenn es aktualisiert wird
4. Definieren Sie das Feld „deled_at“
Standardmäßig verwendet Laravel das Feld „deled_at“, um vorläufige Löschungen durchzuführen. Sie können es ändern, indem Sie das Attribut DELETED_AT definieren.
class User extends Model { use SoftDeletes; * The name of the "deleted at" column. * * @var string */ const DELETED_AT = 'is_deleted'; }
oder definieren Sie den Zugriff
class User extends Model { use SoftDeletes; public function getDeletedAtColumn() { return 'is_deleted'; } }
5. Speichern Sie das Modell und die Beziehungen
Sie können die Methode push() verwenden, um das Modell und seine Beziehungen zu speichern Beziehungen.
class User extends Model { public function phone() { return $this->hasOne('App\Phone'); } } $user = User::first(); $user->name = "Peter"; $user->phone->number = '1234567890'; $user->push(); // 这将更新数据库中的用户和电话
6. Laden Sie das Modell neu
Verwenden Sie fresh(), um ein Modell aus der Datenbank neu zu laden.
$user = App\User::first(); $user->name; // John // user 表被其他进程修改。 例:数据库又插入一条 “name” 为 “Peter” 的数据。 $updatedUser = $user->fresh(); $updatedUser->name; // Peter $user->name; // John
7. Vorhandenes Modell neu laden
Sie können die Methode „refresh()“ verwenden, um ein vorhandenes Modell mit neuen Werten aus der Datenbank neu zu laden.
$user = App\User::first(); $user->name; // John // user 表被其他进程修改。例: “name” 被修改为 “Peter” 。 $user->refresh(); $user->name; // PeterHinweis: restart() aktualisiert auch die mit dem Modell verknüpften Modelldaten.
8. Überprüfen Sie, ob die Modelle gleich sind
Verwenden Sie die Methode is(), um festzustellen, ob die beiden Modelle denselben Primärschlüssel haben und zur selben Tabelle gehören.
$user = App\User::find(1); $sameUser = App\User::find(1); $diffUser = App\User::find(2); $user->is($sameUser); // true $user->is($diffUser); // false
9. Ein Modell klonen
Sie können die Methode „replicate()“ verwenden, um ein Modell in ein neues Objekt zu kopieren.
$user = App\User::find(1); $newUser = $user->replicate(); $newUser->save();
10. Geben Sie das Suchattribut in der find()-Methode an
Bei Verwendung der find()- oder findOrFail()-Methode können Sie den zweiten Parameter übergeben Geben Sie die zu suchenden Eigenschaften an.
$user = App\User::find(1, ['name', 'age']); $user = App\User::findOrFail(1, ['name', 'age']);
Das obige ist der detaillierte Inhalt vonLaravel Eloquent Skill Sharing (Beispielerklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!