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
Robert Michael KimOriginal
2025-03-05 15:43:23376Durchsuche

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
        ];
    }
}

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);
    }
}
$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);

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!

Stellungnahme:
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