Heim > Backend-Entwicklung > PHP-Tutorial > Zugriff auf Rohmodelldaten mit Attributestoarray -Methode von Laravel.

Zugriff auf Rohmodelldaten mit Attributestoarray -Methode von Laravel.

James Robert Taylor
Freigeben: 2025-03-07 01:07:12
Original
791 Leute haben es durchsucht

Accessing Raw Model Data with Laravel's attributesToArray Method

Wenn Sie mit beredten Modellen arbeiten, benötigen Sie manchmal nur die Kerndatenbankattribute ohne Beziehungen oder berechnete Eigenschaften. Die Attributestoarray -Methode von Laravel bietet eine saubere Möglichkeit, auf diese Rohmodelldaten zuzugreifen.

<!-- Syntax highlighted by torchlight.dev -->// Basic usage
$user = User::first();
$attributes = $user->attributesToArray();
// Returns raw database attributes
// ['id' => 1, 'name' => 'John', 'email' => 'john@example.com']
Nach dem Login kopieren

Lassen Sie uns ein praktisches Beispiel untersuchen, das ein Prüfungssystem für Modelländerungen implementiert:

<!-- Syntax highlighted by torchlight.dev --><?php

namespace App\Models;

use App\Models\AuditLog;
use Illuminate\Database\Eloquent\Model;

class AuditableModel extends Model
{
    protected static function booted()
    {
        static::updated(function ($model) {
            $original = $model->getOriginal();
            $current = $model->attributesToArray();

            // Compare only actual database attributes
            $changes = array_diff($current, $original);

            if (!empty($changes)) {
                AuditLog::create([
                    'model_type' => get_class($model),
                    'model_id' => $model->id,
                    'original' => json_encode($original),
                    'changes' => json_encode($changes),
                    'user_id' => auth()->id(),
                    'timestamp' => now()
                ]);
            }
        });
    }
}

class Product extends AuditableModel
{
    protected $appends = ['formatted_price', 'stock_status'];

    public function category()
    {
        return $this->belongsTo(Category::class);
    }

    public function getFormattedPriceAttribute()
    {
        return "$" . number_format($this->price / 100, 2);
    }
}
Nach dem Login kopieren

Die AttributestoArray -Methode bietet direkten Zugriff auf Modellattribute, die in der Datenbank gespeichert sind, und ermöglicht es perfekt für Szenarien, in denen Sie die Rohdaten ohne zusätzliche berechnete Eigenschaften oder Beziehungen benötigen.

Das obige ist der detaillierte Inhalt vonZugriff auf Rohmodelldaten mit Attributestoarray -Methode von Laravel.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage