Heim > PHP-Framework > Laravel > Laravel Eloquent Skill Sharing (Beispielerklärung)

Laravel Eloquent Skill Sharing (Beispielerklärung)

不言
Freigeben: 2019-01-23 10:41:50
nach vorne
2462 Leute haben es durchsucht

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 记录
Nach dem Login kopieren

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
Nach dem Login kopieren

Sie können auch überprüfen, ob das angegebene Attribut geändert wurde.

$user->isDirty('name');    //true
$user->isDirty('age');     //false
Nach dem Login kopieren

3. Rufen Sie die geänderten Attribute ab

Verwenden Sie getChanges(), um die geänderten Attribute abzurufen

$user->getChanges()

//[
     "name" => "Peter",
  ]
Nach dem Login kopieren
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';
}
Nach dem Login kopieren

oder definieren Sie den Zugriff

class User extends Model
{
    use SoftDeletes;

    public function getDeletedAtColumn()
    {
        return 'is_deleted';
    }
}
Nach dem Login kopieren

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(); // 这将更新数据库中的用户和电话
Nach dem Login kopieren

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
Nach dem Login kopieren

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;              // Peter
Nach dem Login kopieren
Hinweis: 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
Nach dem Login kopieren

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();
Nach dem Login kopieren

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']);
Nach dem Login kopieren

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!

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