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
Lepaskan: 2025-03-05 15:43:23
asal
379 orang telah melayarinya

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
        ];
    }
}
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan