Rumah >pembangunan bahagian belakang >tutorial php >Menyelaraskan model Laravel anda dengan atribut yang boleh diperoleh

Menyelaraskan model Laravel anda dengan atribut yang boleh diperoleh

Robert Michael Kim
Robert Michael Kimasal
2025-03-05 15:43:23373semak imbas

Streamline Your Laravel Models with Stringable Attributes

Type Converter AsStringable Laravel adalah alat yang berkuasa yang meningkatkan cara anda mengendalikan sifat rentetan dalam model fasih anda. Dengan menukar sifat rentetan ke objek Stringable, anda boleh mengakses sejumlah besar kaedah manipulasi rentetan untuk menulis kod bersih dan lebih ekspresif. Kaedah ini sangat berguna untuk aplikasi yang berintensifkan kandungan di mana operasi rentetan kerap, membantu menjaga pengawal dan melihat kemas. Berikut adalah contoh praktikal sistem pengurusan kandungan:

use Illuminate\Database\Eloquent\Casts\AsStringable;

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

jenis penukar menukarkan pemprosesan rentetan ke dalam pengalaman panggilan yang elegan, rantaian sambil mengekalkan kesederhanaan kod dan penyelenggaraan.
<?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);
    }
}

Atas ialah kandungan terperinci Menyelaraskan model Laravel anda dengan atribut yang boleh diperoleh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn