Heim >Backend-Entwicklung >PHP-Tutorial >Stürzen Sie Ihre Laravel -Modelle mit stringbaren Attributen
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
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!