Heim > Backend-Entwicklung > PHP-Tutorial > Stürzen Sie Ihre Laravel -Modelle mit stringbaren Attributen

Stürzen Sie Ihre Laravel -Modelle mit stringbaren Attributen

Robert Michael Kim
Freigeben: 2025-03-05 15:43:23
Original
380 Leute haben es durchsucht

Streamline Your Laravel Models with Stringable Attributes

Laravel AsStringable Typ -Konverter ist ein leistungsstarkes Tool, das die Art und Weise, wie Sie die Zeichenfolgeneigenschaften in Ihrem beredten Modell umgehen, erheblich verbessert. Durch die Konvertierung von Zeichenfolgeneigenschaften in Stringable Objekte können Sie auf eine große Anzahl von String -Manipulationsmethoden zugreifen, um sauberere und ausdrucksstärkere Code zu schreiben.

Diese Methode ist besonders nützlich für inhaltsintensive Anwendungen, bei denen String-Operationen häufig sind, was dazu beiträgt, den Controller zu halten und ordentlich zu sehen.

use Illuminate\Database\Eloquent\Casts\AsStringable;

class Post extends Model
{
    protected function casts(): array
    {
        return [
            'title' => AsStringable::class,
            'content' => AsStringable::class
        ];
    }
}
Nach dem Login kopieren

Hier ist ein praktisches Beispiel für ein Content -Management -System:

<?php namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\AsStringable;

class Article extends Model
{
    protected function casts(): array
    {
        return [
            'title' => AsStringable::class,
            'content' => AsStringable::class,
            'meta_description' => AsStringable::class
        ];
    }

    public function getSnippetAttribute()
    {
        return $this->content
            ->stripTags()
            ->words(30, '...');
    }

    public function getUrlPathAttribute()
    {
        return $this->title
            ->slug()
            ->prepend('/articles/');
    }

    public function getFormattedContentAttribute()
    {
        return $this->content
            ->markdown()
            ->replaceMatches('/\@mention\((.*?)\)/', '<a href="https://www.php.cn/link/2fc02e925955d516a04e54a633f05608">@</a>')
            ->replace('[[', '<mark>')
            ->replace(']]', '</mark>');
    }

    public function getSeoTitleAttribute()
    {
        return $this->title
            ->title()
            ->limit(60);
    }
}
Nach dem Login kopieren
$article = Article::find(1);
// 直接访问 Stringable 方法
dd($article->title->title());
dd($article->content->words(20));

// 使用计算属性
dd($article->snippet);
dd($article->url_path);
dd($article->formatted_content);
Nach dem Login kopieren

AsStringable

Der Typumwandler konvertiert die String -Verarbeitung in eine elegante, methodketten Call -Erfahrung, während der Code -Einfachheit und -wartbarkeit beibehalten.

Das obige ist der detaillierte Inhalt vonStürzen Sie Ihre Laravel -Modelle mit stringbaren Attributen. 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